Tabhost就是平时常见的选项卡控件,如下所示:
这样的选项卡控件,已经集成了点击切换的功能,编写界面的人员只需要编写每个选项卡和选项卡代表的内容即可
(1)常用组件如下所示:
①TabWidget:该组件就是Tabhost标签页中的按钮,点击这些按钮可以切换选项卡,以切换显示的内容
②FrameLayout:该组件就是放置每个选项卡所显示的内容的控件,如图所示,4个选项卡分别对应4个LinearLayout,每个LinearLayout的id就表示该内容对应的选项卡
这两个组件是tabhost的必备组件,缺一不可
(2)使用步骤
①定义布局 : 在XML文件中使用TabHost组件,并在其中定义一个FrameLayout来显示选项卡内容;
②继承TabActivity : 显示选项卡组件的Activity继承TabActivity;
③获取组件 : 通过调用getTabHost()方法,获取TabHost对象;
④创建添加选项卡 : 通过TabHost创建添加选项卡;
布局文件
①Tabhost:
getHost()获取前提 :设置了该tabhost的id为默认:android:id="@id/tabhost"之后,才可以 在Activity界面可以使用getHost(), 获取这个TabHost视图对象
如果自定义了tabhost的id,如android:id="@+id/mytabhost"之类的,则必须使用findViewbyID()才能获得tabhost
②TabWidget:
TabHost必备组件 :该组件与FrameLayout组件是TabHost组件中必备的两个组件;
切换按钮下方显示 : 如果想要将按钮放到下面,可以将该组件定义在下面,但是注意,FrameLayout要设置android:layout_widget = "1";
设置TabWidget大小 :如果想要设置该按钮组件的大小,可以设置该组件与FrameLayout组件的权重;
③FrameLayout:
组件作用 : 该组件中定义的子组件是TabHost中每个页面显示的选项卡,可以将TabHost选项卡显示的视图定义在其中;
(4)Activity方法
1. 获取TabHost
获取方法 :getHost();
或者 (TabHost) findViewById(R.id.tabhost);
①调用getHost()方法获取TabHost组件的方法的前提是在布局文件中,设置了android自带的id android:id="@android:id/tabhost"才可以;
②如果使用自己自定义的id时,则必须使用findViewByID(),调用xml布局文件中id设置为tabhost的控件,以获得tabhost;
2.setup()
如果后续需要使用setContent(),则必须使用setup()
3. 创建选项卡
创建方法:TabSpec ts = tabhost.newTabspec()
4、设置选项卡 :
设置按钮名称 : setIndicator();
设置选项卡内容 : setContent(), 可以设置视图组件, 可以设置Activity,也可以设置Fragement;
添加选项卡 : tabHost.add(spec), 传入的参数是创建选项卡的TabSpec对象;