选项卡主要由TabHost(标签,主人),TabWidget(微件)和FrameLayout3个组件组成,用于实现一个多标签页的用户界面。
1. TabHost在XML文件中添加:
XML布局文件中添加选项卡时必须使用系统id来为各组件指定id属性。
<TabHostandroid:id="@android:id/tabhost"... ... ><LinearLayoutandroid:orientation="vertical" ... ... ><TabWidgetandroid:id="@android:id/tabs"... ... /><FrameLayoutandroid: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 ) );