现在几乎所有信息的App都会用到tabHost这个布局。tabHost是FrameLayout的一个子类。它实现的功能就是用一个tab标签来控制全局,使用户可以在不同的tab之间跳转。
笔者的一个体会就是每次要新写这个东西总是忘东忘西,所以这次一定要把tabHost实现过程中需要注意的事项总结出来。
一、tabHost布局
首先说说tabhost在xml文件中的布局。tabHost的xml布局文件有三个需要注意的点,可以总结为"3个ID"。这3个ID分别是"@android:id/tabhost", "@android:id/tabcontent", "@android:id/tabs". 可见这三个ID实际是调用了android系统里的ID,而不是我们平常自定义的ID(对于自定义的ID我们通常这样写,@+id/consumedID)。这三个ID分别代表了三个东西,tabhost即tabhost布局,tabcontent即标签页的内容,tabs即标签。下面我们以3个ID为线索,写一个tabHost的xml文件
第一步,"tabhost"。即建立tabhost布局。如下,标红部分体现出了第一个ID。
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true" >
</TabHost>
第二步,主界面
在tabHost布局中,我们要把主界面的布局加进去。这个布局主要决定了,标签在屏幕上方还是下方,标签和内容的位置关系等。比如,我们可以用一个简单的LinearLayout来表示主界面由内容、标签两部分组成,且内容在标签上方。
第三步,"tabcontent"。即在主界面中定义标签页内容的位置。标红部分体现出了第二个ID。
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:foregroundGravity="bottom|fill_horizontal" >
</Fr