TabActivity封装了一个TabHost组建的构建、恢复、更新过程。使客户端可以直接使用TabHost的实例,而无须关心TabHost的生命周期管理。
TabActivity.onPostCreate方法检测客户端是否自定义了TabHost。如果未定义该组件,TabActivity将设置默认的TabHost布局文件(com.android.internal.R.layout.tab_content).
一个TabHost[@android:id/tabhost]主要包含了由一系列选项卡(TabSpec)构成的TabWidget[@android:id/tabs]组建和显示当前选项卡中的内容的FrameLayout[@android:id/tab_content]对象.
通过TabHost.addTab(TabSpec)方法向TabWidget组建添加选项卡及点击该选项卡显示的内容.
TabHost.setIndicator(..)、TabHost.setContent(..)大量使用了策略模式(IndicatorStrategy,ContentStrategy)、工厂模式(TabContentFactory)来构建选项卡及Tab内容视图.
创建一个自定义的TabHost步骤如下:
- 创建一个自定义的TabHost的layout布局文件.
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" style="@style/fill_parent">
<LinearLayout style="@style/fill_parent">
<FrameLayout android:id="@android:id/tabcontent" style="@style/fill_parent"/>
<TabWidget android:id="@android:id/tabs" style="@style/tabs"/>
</LinearLayout>
</TabHost>
2. 重写TabActivity中的onCreate方法,设置自定义的TabHost布局文件及创建相应的选项卡.
FrameLayout toFilled = getTabHost().getTabContentView();
getLayoutInflater().inflate(tabLayoutRes, toFilled);
分享到:
相关推荐
### Android(安卓)开发教程与笔记 #### 一、Android编程基础概述 本教程旨在为初学者提供一个全面且深入的Android开发入门指南。通过一系列的实际案例和代码演示,帮助读者掌握Android应用开发的基本概念和技术...
### 安卓开发教程与笔记 #### 一、Android 高级架构师课程简介 本部分介绍了 Android 高级架构师课程的一些基本信息,包括但不限于: - **课程数量**:共有58套课程,覆盖了广泛的 Android 开发领域,适合不同程度...
2. **定义TabActivity子类**:在项目的包中创建一个新的类`MyTab`,使其继承自`TabActivity`。这是因为`TabActivity`本身就是`Activity`的一个子类,它提供了处理`Tab`和`TabHost`所需的基本框架。 3. **重写`...
### Android 安卓笔记知识点详解 #### Android—基础 ##### 基础—概念 - **控件类之父**:`View`是所有控件的基类,无论是简单的按钮还是复杂的列表视图,都是从这个类派生出来的。 - **基准线**:在英文书写中,...