选项卡主要由TabHost(标签,主人),TabWidget(微件)和FrameLayout3个组件组成,用于实现一个多标签页的用户界面。
1. TabHost在XML文件中添加:
XML布局文件中添加选项卡时必须使用系统id来为各组件指定id属性。
<TabHost
android:id="@android:id/tabhost"
... ... >
<LinearLayout
android:orientation="vertical"
... ... >
<TabWidget
android:id="@android:id/tabs"
... ... />
<FrameLayout
android:id="@android:id/tabcontent"
... ... />
</LinearLayout>
</TabHost>
2. 准备选项卡内XML布局资源:
//文件 - res \ layout \ tab1.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
... ...
android:background="@color/purple_700"
android:id="@+id/relativeLayout_tab1">
</RelativeLayout>
//文件 - res \ layout \ tab2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
... ...
android:background="@color/purple_200"
android:id="@+id/relativeLayout_tab2">
</RelativeLayout>
3. TabHost在Java文件中设置:
//获取TabHost对象
TabHost tabHost=findViewById(android.R.id.tabhost);
//初始化TabHost
tabHost.setup();
//添加标签页
LayoutInflater layoutInflater=LayoutInflater.from(MainActivity.this);
layoutInflater.inflate( R.layout.tab1 , tabHost.getTabContentView() );
layoutInflater.inflate( R.layout.tab2 , tabHost.getTabContentView() );
tabHost.addTab( tabHost.newTabSpec("tab01")
.setIndicator("str1") //指示信号,即在标签处显示的文本
.setContent( R.id.relativeLayout_tab1 ) );
tabHost.addTab( tabHost.newTabSpec("tab02")
.setIndicator("str2") //指示信号,即在标签处显示的文本
.setContent( R.id.relativeLayout_tab2 ) );