《Android中的基本控件下020714标签TabHost》由会员分享,可在线阅读,更多相关《Android中的基本控件下020714标签TabHost(31页珍藏版)》请在金锄头文库上搜索。
1、Android开发实战经典,第7章: Android中的基本控件(下) 标签:TabHost,李兴华,北京魔乐科技软件学院,本章目标,掌握标签组件的使用,并可以使用标签组件进行程序界面分割 可以通过配置文件完成标签组件的显示; 可以通过程序完成标签组件的显示。,标签组件,标签组件的主要功能是可以进行应用程序分类管理,例如:在用户使用windows操作系统的时候,经常见到如图所示的图形界面。 这种界面的主要特点是可以在一个窗口中显示多组标签栏的内容,在Android系统之中每个标签栏就称为一个Tab,而包含这多个标签栏的容器就将其称为TabHost,TabHost类的继承结构如下所示: java
2、.lang.Object android.view.View android.view.ViewGroup android.widget.FrameLayout android.widget.TabHost,TabHost类中的常用方法,标签使用方式,如果现在要想实现这种标签的显示界面,也有两种方式: 方式一:直接让一个Activity程序继承TabActivity类; 方式二:利用findViewById()方法取得TagHost组件,并进行若干配置;,范例:使用方式一完成标签显示,方式一:直接继承TabActivity类,要想实现标签界面的功能,最简单方法是让一个Activity程序直接继
3、承自TabActivity类,此类继承结构如下所示: java.lang.Object android.content.Context android.content.ContextWrapper android.view.ContextThemeWrapper android.app.Activity android.app.ActivityGroup android.app.TabActivity,TabActivity类的常用方法,如果一个Activity程序继承了TabActivity类,则直接利用getTabHost()方法就可以取得一个TabHost类的对象。 在标签界面显示的时候
4、,由于现在不是直接通过元素在布局管理器中定义的组件形式,所以无法使用findViewById()方法进行TabHost对象的实例化,那么就可以通过LayoutInflater类完成布局管理器中定义组件的实例化操作。,LayoutInflater类的常用方法,LayoutInflater类的功能,TabHost.TabSpec,另外在使用TabHost类增加每一个Tab的时候使用的方法是:public void addTab(TabHost.TabSpec tabSpec),所以需要增加多个TabHost.TabSpec的对象,TabHost.TabSpec类继承结构如下: java.lang.
5、Object android.widget.TabHost.TabSpec 此类是TabHost定义的内部类,如果要想取得此类的实例化对象依靠TabHost类中的newTabSpec()方法完成,TabHost.TabSpec类定义的常用方法,范例:建立tab.xml文件并定义多种组件(A),范例:建立tab.xml文件并定义多种组件(B),范例:定义Activity程序,此类直接继承TabActivity类,范例:使用方式二完成标签,方式二:在布局管理器之中定义TabHost组件,如果使用布局管理器的方式实现标签的显示,则首先必须先了解android.widget.TabWidget类,此类
6、定义如下: java.lang.Object android.view.View android.view.ViewGroup android.widget.LinearLayout android.widget.TabWidget,TabWidget类的常用方法,配置文件编写要求,如果要想通过配置实现标签布局,则对配置文件的编写上也有要求: 要求一:首先所有的用于标签配置的文件,必须以“”为根节点; 要求二:为了保证标签页和标签内容显示正常(例如:标签提示要放在标签显示内容之上)则可以采用一个布局管理器进行布局: 要求三:定义一个“”的标签,用于表示整个标签容器,另外在定义此组件的时候要引入
7、“tabs”的组件,表示允许加入多个标签页: 要求四:由于TabHost是FrameLayout的子类,所以要想定义标签页必须使用FrameLayout布局,而后再此布局中定义所需要的标签页组件,而且框架布局上必须引用tabcontent组件(android:id=“android:id/tabcontent“),这点的配置与“this.myTabHost.getTabContentView()”功能类似:,要求一:,所有的用于标签配置的文件,必须以“”为根节点;,要求二:,为了保证标签页和标签内容显示正常(例如:标签提示要放在标签显示内容之上)则可以采用一个布局管理器进行布局:,要求三:,定
8、义一个“”的标签,用于表示整个标签容器,另外在定义此组件的时候要引入“tabs”的组件,表示允许加入多个标签页:,要求四:,由于TabHost是FrameLayout的子类,所以要想定义标签页必须使用FrameLayout布局,而后再此布局中定义所需要的标签页组件,而且框架布局上必须引用tabcontent组件(android:id=“android:id/tabcontent“),这点的配置与“this.myTabHost.getTabContentView()”功能类似:,范例:定义表格布局配置文件 tab.xml (A),范例:定义表格布局配置文件 tab.xml(B),范例:定义表格布局配置文件 tab.xml(C),范例:定义Activity程序,生成表格布局,范例:在屏幕下方显示标签,修改tab.xml,小结,使用Tab标签可以实现程序的分栏显示; Tab的实现可以通过继承TabActivity类实现也可以通过配置实现; 通过配置实现的Tab较为麻烦。,下一章内容,菜单:Menu,