先贴上一段代码:
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/tab_top"
android:background="@color/red"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="20dp"
android:layout_alignParentTop="true" >
</LinearLayout>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:background="@color/green"
android:layout_height="wrap_content"
android:layout_above="@id/tabs"
android:layout_below="@id/tab_top" >
</FrameLayout>
<TabWidget
android:id="@+id/tabs"
android:layout_width="fill_parent"
android:background="@color/blue"
android:layout_height="20dp"
android:layout_alignParentBottom="true" >
</TabWidget>
</RelativeLayout>
</TabHost>
显示为如下:
这说明以<TabHost>为头的布局文件下可以很好的存在帧布局视图。在上面可放一个view,在下面可放一个选项卡去完成切换中间帧布局内容。
注意,若不要中间的<FrameLayout>,则会出现RuntimeException异常:
Your TabHost must have a FrameLayout whose id attribute is 'android.R.id.tabcontent'。
由此也可看出,中间的帧布局文件是专门用来装载内容用的。