为什么我看不到tabHost的Tab?

时间:2017-08-15 08:05:50

标签: android

我做了与googles示例相同的代码 - 我想看到我可以点击它们并在标签之间切换的标签。

我看不到标签..

代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          tools:context=".MainActivity">

<TabHost
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

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

            <LinearLayout
                android:id="@+id/Action"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:background="@android:color/black">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:text="This is tab 1" />


            </LinearLayout>

            <LinearLayout
                android:id="@+id/Memo"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:background="@android:color/holo_red_dark">


                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:text="This is tab 2" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/Settings"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:background="@android:color/holo_blue_light">


                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:text="This is tab 3" />

            </LinearLayout>
        </FrameLayout>

    </LinearLayout>

</TabHost>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

试试这个。

  1. 在xml代码中添加TabHost ID

    android:id="@+id/tabhost"
    
  2. TabHost方法

    中添加onCreate()初始化信息
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab_host);
    
        TabHost mTabHost = (TabHost) findViewById(R.id.tabhost);
        mTabHost.setup();
        mTabHost.addTab(mTabHost.newTabSpec("Action").setIndicator("title1", null).setContent(R.id.Action));
        mTabHost.addTab(mTabHost.newTabSpec("Memo").setIndicator("title2", null).setContent(R.id.Memo));
       mTabHost.addTab(mTabHost.newTabSpec("Settings").setIndicator("title3", null).setContent(R.id.Settings));
    }