有条件地使用选项卡式活动

时间:2018-07-16 12:10:14

标签: android tabs launcher

我正在尝试创建一个以“定制”布局的活动A开头的应用。从该活动中,可以输入带有3个标签的活动B。

我成功创建了带有标签的活动。问题在于,仅当该活动同时也是启动程序活动时,才会显示选项卡。如果不是,则选项卡不会显示。

我第一次尝试使用TabLayout创建选项卡。现在,我尝试使用TabHost创建选项卡。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

主要活动中的“创建”标签的onCreate方法。

    public class GlavnaStran extends TabActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_glavna_stran);

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

    TabHost.TabSpec tab1 = tabHost.newTabSpec("Search");
    TabHost.TabSpec tab2 = tabHost.newTabSpec("Lyric");
    TabHost.TabSpec tab3 = tabHost.newTabSpec("Playlist");

    //tab1.setIndicator("Tab1");
    tab1.setIndicator("Search");
    tab1.setContent(new Intent(this, SearchTab.class));

    //tab2.setIndicator("Tab2");
    tab2.setIndicator("Lyric");
    tab2.setContent(new Intent(this, LyricTab.class));

    //tab3.setIndicator("Tab3");
    tab3.setIndicator("Playlist");
    tab3.setContent(new Intent(this, PlaylistTab.class));

    tabHost.addTab(tab1);
    tabHost.addTab(tab2);
    tabHost.addTab(tab3);
}

}

为每个标签创建了一个单独的活动,如下所示:

    public class SearchTab extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search_tab);
}

}

通过在设计视图中导入TabHost容器来创建项目的xml部分。

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="com.example.admin.besedilatakt_v5.GlavnaStran">

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

    <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/tab1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">


            </LinearLayout>

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


            </LinearLayout>

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


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

在tab活动的XML文件中,除了显示一些随机文本的TextView小部件外,没有什么特别的。