Android问题:tabhost可以放在其中一个标签中吗?

时间:2011-07-15 07:06:27

标签: android android-tabhost

我想要以级联方式显示一些信息,并希望以制表方式显示。

所以我的想法是将TabHost嵌入另一个父TabHost的一个标签中。

我可以使用一层TabHost工作,但当我尝试将另一个TabHost添加到其中一个选项卡时,它总是会出现以下错误:

找不到与给定名称匹配的资源('id'的值为'@ forroid:id / tabhostDiagnosis

之前有人遇到过同样的问题吗?

这是我的代码(删除了冗余部分)

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
        <TabWidget android:id="@android:id/tabs"
            android:layout_width="fill_parent" android:layout_height="wrap_content" />
        <FrameLayout android:id="@android:id/tabcontent"
            android:layout_width="fill_parent" android:layout_height="fill_parent">

            <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent" android:layout_height="fill_parent"
                android:id="@+id/Diagnosis">
                <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:orientation="vertical" android:layout_width="fill_parent"
                    android:layout_height="fill_parent">

<!--  -->
                    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@android:id/tabhostDiagnosis"                        
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent">
                        <LinearLayout android:orientation="vertical"
                            android:layout_width="fill_parent" android:layout_height="fill_parent">
<!--                             -->
                            <TabWidget android:id="@android:id/tabsDiagnosis" 
                                android:layout_width="fill_parent" android:layout_height="wrap_content" />

                            <FrameLayout android:id="@android:id/tabcontentDiagnosis"
                                android:layout_width="fill_parent" android:layout_height="fill_parent">

                            </FrameLayout>
                        </LinearLayout>
                    </TabHost>
                </LinearLayout>
            </ScrollView>


        </FrameLayout>
    </LinearLayout>
</TabHost>

2 个答案:

答案 0 :(得分:1)

我为TabHost研究了the source code

它将直接通过R.id.x引用TabWidget(或FrameLayout)。

mTabWidget = (TabWidget) findViewById(com.android.internal.R.id.tabs);

这基本上不会将TabHost嵌入另一个。

所以答案是不行的。

答案 1 :(得分:0)

温斯顿是正确的但是......

您可以在选项卡选择时启动另一个活动,可以实例化新的TabHost / TabWidget等。