使用TabHost包括其他布局

时间:2013-02-27 07:01:56

标签: android user-interface android-tabhost

我有一个TabHost布局(下面的代码)

<TabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myTabHost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="65dp" >
    </TabWidget>

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingTop="65dp" >

        <LinearLayout
            android:id="@+id/content"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
        </LinearLayout>
    </FrameLayout>
</TabHost>

我正在TabHost中加载一些活动,关于活动的每件事情都可以。但我的问题是通过Include标签在TabHost顶部加载另一个布局, 在像LinearLayout这样的其他布局中我把一个include标签放在里面就可以了,但是在TabHost中我不能这样做因为在添加后包含TabHost UI被破坏了 。 请告诉我如何解决这个问题

2 个答案:

答案 0 :(得分:2)

TabHost标记用另一个LinearLayout标记包裹起来:

<LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
            <!-- inclde goes here -->
            <TabHost
                android:id="@+id/myTabHost"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >
                        <!-- Other tags as you have already. -->
            </TabHost>
</LinearLayout>

答案 1 :(得分:1)

然后将LinearLayout作为父TabHost放置,并使用包含标记的LinearLayout包含在其他layouts中,如下所示:

   <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/myLinearLayout"
         android:layout_width="match_parent"
         android:layout_height="match_parent" >
    <TabHost
        android:id="@+id/myTabHost"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="65dp" >
    </TabWidget>
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingTop="65dp" >

    <LinearLayout
        android:id="@+id/content"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    </LinearLayout>
    </FrameLayout>
    </TabHost>
 </LinearLayout>