2

我想将标签放在标签下。基本上我有一个父标签说 Tab1 和 Tab2。在 Tab1 下,我还想要 2 个选项卡:Tab1a 和 Tab1b 以及 Tab2 下的类似 2 个选项卡。我有以下 xml 文件结构:

<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tabHost"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">

<TabWidget 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@android:id/tabs"
android:tabStripEnabled="false"     
android:background="@drawable/tabwstyle"/>

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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:paddingTop="60dp"
    android:id="@+id/tab1">     

    <TabHost 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/tabHost_pb">

        <TabWidget 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@android:id/tabs"
            android:tabStripEnabled="false"     
            android:background="@drawable/tabwstyle"/>

        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" 
            android:paddingTop="60dp"
            android:id="@+id/tab1a">


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

                <ListView
                    android:id="@+id/listview"
                    android:layout_width="fill_parent"    
                    android:layout_height="wrap_content" 
                    android:divider="@drawable/divider"
                    android:dividerHeight="10dp" 
                    android:paddingTop="15dp"
                    android:smoothScrollbar="true"/>

                </FrameLayout>

                <FrameLayout 
                    android:id="@+id/frame2"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:visibility="gone">
                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="50dp"
                    android:text="@string/testtxt"
                    android:id="@+id/frame2text"/>
                </FrameLayout>

        </LinearLayout>    


        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:paddingTop="60dp"
            android:id="@+id/tab1b">

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="50dp"
                android:text="@string/testtxt"
                android:id="@+id/tab1btext"/>

        </LinearLayout>

    </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"
    android:paddingTop="60dp"
    android:id="@+id/tab2">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:text="@string/testtxt"
        android:id="@+id/tab2text"/>

</LinearLayout>

 </FrameLayout>
 </TabHost>

我想要工作的java代码:

 TabHost tabhost=(TabHost) findViewById(R.id.tabHost);
    tabhost.setup();                     

    tabhost.getTabWidget().setDividerDrawable(R.drawable.divider2);             

    TabSpec spec1=tabhost.newTabSpec("Tab 1");
    spec1.setContent(R.id.tab1);
    spec1.setIndicator("Pain Box");

    TabSpec spec2=tabhost.newTabSpec("Tab 2");
    spec2.setIndicator("Pain List");
    spec2.setContent(R.id.tab2);

    tabhost.addTab(spec1);
    tabhost.addTab(spec2);             

    //Keep below after Add spec or crash 
    tabhost.getTabWidget().getChildTabViewAt(0).setBackgroundDrawable(null);
    tabhost.getTabWidget().getChildTabViewAt(1).setBackgroundDrawable(null);

    TabHost tabhost_pb=(TabHost) findViewById(R.id.tabHost_pb);
    tabhost_pb.setup();

    tabhost_pb.getTabWidget().setDividerDrawable(R.drawable.divider2);

    TabSpec spec_pb1=tabhost_pb.newTabSpec("Tab1a");
    spec_pb1.setContent(R.id.tab1a);
    spec_pb1.setIndicator("All");

    TabSpec spec_pb2=tabhost_pb.newTabSpec("Tab1b");
    spec_pb2.setContent(R.id.tab1b);
    spec_pb2.setIndicator("Followers");

    tabhost_pb.addTab(spec_pb1);
    tabhost_pb.addTab(spec_pb2);

    tabhost_pb.getTabWidget().getChildTabViewAt(0).setBackgroundDrawable(null);
    tabhost_pb.getTabWidget().getChildTabViewAt(1).setBackgroundDrawable(null);

现在,当我评论第一个选项卡下方的所有部分时,代码工作正常,即。评论从以下开始的所有行: TabHost tabhost_pb=(TabHost) findViewById(R.id.tabHost_pb);

所以当我评论我的标签时,我的标签没有在 Tab1 下呈现,但它们留下了一个空格

4

1 回答 1

2

关于 Stackoverflow 上发布的嵌套选项卡也有类似的问题。这是链接.. 可能这可能会有所帮助。

于 2012-11-22T01:44:13.827 回答