TabHost并包含

时间:2016-11-26 17:13:47

标签: android include android-tabhost

我是android新手。 我想有一个tabhost with includes但是标签赢了。 这2包括简单或基本的输入逻辑,如文本框和按钮。 所有代码都在这个主要活动中,比如保存db等等。

这是代码。



    <TabHost
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tabHost"
        android:layout_width="fill_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:id="@+id/line"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0"></TabWidget>
            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="0dip"
                android:layout_weight="1">
                <include android:id="@+id/layout1"
                    layout="@layout/layout_add_details"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"></include>
                <include android:id="@+id/layout2"
                    layout="@layout/layout_add_number"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"></include>
            </FrameLayout>
        </LinearLayout>
    </TabHost>
&#13;
&#13;
&#13;

以下是我设置tabhost的方法。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        TabHost tab = (TabHost) findViewById(R.id.tabHost);
        tab.setup();

        TabHost.TabSpec spec1 = tab.newTabSpec("TAB 1");
        spec1.setIndicator("TAB 1");
        spec1.setContent(R.id.layout1);
        tab.addTab(spec1);

        TabHost.TabSpec spec2 = tab.newTabSpec("TAB 2");
        spec2.setIndicator("TAB 2");
        spec2.setContent(R.id.layout2);
        tab.addTab(spec2);
}

提前致谢!

1 个答案:

答案 0 :(得分:0)

thiis是我如何解决我的问题。我有一个Tabhost,里面有三个标签。在第二个我有谷歌的地图片段和另外两个我有简单的文本框。 仅使用包含设置

添加第三个标签

这就是主要布局的样子

    <TabHost
        android:id="@+id/tab_host_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <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="40dp" />

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

                <LinearLayout
                    android:id="@+id/tab1"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="tab one"/>

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/map_tab"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">

                    <fragment
                        android:id="@+id/map"
                        android:name="com.google.android.gms.maps.SupportMapFragment"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        tools:context=".MapsActivity" />
                </LinearLayout>

                <FrameLayout
                    android:id="@+id/tab3"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">

                    <include
                        layout="@layout/tab_three_content"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" />


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

这是我单独创建的tab三个布局,并使用include。

插入到之前的布局中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello from tab three"/>

</LinearLayout>