Android选项卡TabHost方式实现

1.布局XML:

<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:id="@android:id/tabhost">

    <RelativeLayout 

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical">

        <TextView 

            android:id="@+id/bottomtip"

            android:layout_width="match_parent"

            android:layout_height="50dp"            

            android:text="@string/funPageBtn2" 

            android:gravity="center_horizontal|center_vertical" 

            android:layout_alignParentTop="true"

            android:textColor="@android:color/white"

            android:background="@android:color/black" 

        />

        <FrameLayout 

            android:id="@android:id/tabcontent"

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:layout_above="@android:id/tabs"

            android:layout_below="@+id/bottomtip"

        />

        <TabWidget 

            android:id="@android:id/tabs"   

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_alignParentBottom="true"

            android:background="@android:color/black" 

        />        

    </RelativeLayout>



</TabHost>

布局效果理解:
Android选项卡TabHost方式实现

 

2.Activity类实现

package com.test.appdemo1.actlearn;



import com.test.appdemo1.R;



import android.app.TabActivity;

import android.content.Intent;

import android.os.Bundle;

import android.widget.TabHost;

import android.widget.TabHost.TabSpec;



@SuppressWarnings("deprecation")

public class TabOptTopAct extends TabActivity {



    private TabHost tabHost;    

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.tabtoplayout);

        initTab();

    }



    private void initTab() {

        tabHost = getTabHost();

        TabSpec tabSpec = null;

        Intent  intent = new Intent(this,MainActivity.class);

        //第一个        

        tabSpec = tabHost.newTabSpec("tab1")

                .setIndicator("首页",getResources().getDrawable(R.drawable.home))

                .setContent(intent);

        tabHost.addTab(tabSpec);

        

        //第二个        

        intent = new Intent(this,NextActivity.class);

        tabSpec = tabHost.newTabSpec("tab2")

                .setIndicator("邮件",getResources().getDrawable(R.drawable.mail))

                .setContent(intent);

        tabHost.addTab(tabSpec);

        

        //第三个    

        intent = new Intent(this,ServiceActDemo.class);

        tabSpec = tabHost.newTabSpec("tab3")

                .setIndicator("音乐",getResources().getDrawable(R.drawable.music))

                .setContent(intent);

        tabHost.addTab(tabSpec);

        

        //第四个    

        intent = new Intent(this,FrameLearnLayoutAct.class);

        tabSpec = tabHost.newTabSpec("tab4")

                .setIndicator("计算",getResources().getDrawable(R.drawable.calc))

                .setContent(intent);

        tabHost.addTab(tabSpec);

        

        tabHost.setCurrentTab(1);

    }

    

    public void onBackPressed() {

        super.onBackPressed();

        finish();

    }

}

最后说明:如果想把选项卡放到顶部只需修改布局文件中RelativeLayout里面的三个元素的位置

若有问题请大家指正.

程序运行效果如上图片所示.

 

 

你可能感兴趣的:(android)