Android中Tab的使用

Tab可以用于在一个页面中显示多个页面,可以通过指定Tab的数量控制显示的页面数量
通过setContent()方法可以将其他的Fragment、Activity等加入到当前Tab中

1.setContent(Intent intent)将Intent对象加入到Tab中

  • 代码文件:
TabHost tabHost = getTabHost();
        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("已接电话",getResources().getDrawable(R.mipmap.ic_launcher))
                .setContent(new Intent(this,BeCalledActivity.class))

        );
//
        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("呼出电话")
                .setContent(new Intent(this,CalledActivity.class))
        );

        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("未接电话")
                .setContent(new Intent(this,Tab.class))
        );
  • 布局文件
<?xml version="1.0" encoding="utf-8"?>
    <TabHost  xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@android:id/tabhost" android:layout_alignParentTop="true" android:layout_centerHorizontal="true">

        <LinearLayout  android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">

            <TabWidget  android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content">
            </TabWidget>

            <FrameLayout  android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent">
            </FrameLayout>
        </LinearLayout>
    </TabHost>

2.setContent(View id)方法将布局文件加入到Tab中

  • 代码文件
 TabHost tabHost = getTabHost();
        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("已接电话",getResources().getDrawable(R.mipmap.ic_launcher))
                .setContent(R.id.linearLayout)

        );
        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("呼出电话")
                .setContent(R.id.linearLayout3)
        );

        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("未接电话")
                .setContent(R.id.linearLayout3)
        );

    }
  • 布局文件:
<?xml version="1.0" encoding="utf-8"?>
    <TabHost  xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@android:id/tabhost" android:layout_alignParentTop="true" android:layout_centerHorizontal="true">

        <LinearLayout  android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">

            <TabWidget  android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content"></TabWidget>

            <FrameLayout  android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent">

                <LinearLayout  android:id="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
                </LinearLayout>

                <LinearLayout  android:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"></LinearLayout>

                <LinearLayout  android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"></LinearLayout>
            </FrameLayout>
        </LinearLayout>
    </TabHost>

注意:

布局文件中

TabHost的ID必须为:android:id="@android:id/tabhost"
TabWeight的ID必须为:android:id="@android:id/tabs"
FrameLayout的ID必须为:android:id="@android:id/tabcontent"

你可能感兴趣的:(android,tab,tabhost)