如何在 Android 中使用 TabHost?


在进入示例之前,我们应该了解 Android 中的 TabHost 是什么。TabHost 包含一组选项卡。每个选项卡根据项目规范包含片段或活动。用户可以从左到右或从右到左滚动选项卡。

此示例演示如何在 Android 中使用 TabHost。

步骤 1 - 在 Android Studio 中创建一个新项目,转到文件 ⇒ 新建项目,并填写所有必需的详细信息以创建一个新项目。

步骤 2 - 将以下代码添加到 res/layout/activity_main.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="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context=".MainActivity">
   <TabHost android:id="@+id/tabhost"
      android:layout_width="match_parent"
      android:layout_height="match_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">
            <LinearLayout
               android:id="@+id/tab1"
               android:layout_width="match_parent"
               android:layout_height="match_parent">
               <Button
                  android:id="@+id/button"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="tab1" />
            </LinearLayout>
            <LinearLayout
               android:id="@+id/tab2"
               android:layout_width="match_parent"
               android:layout_height="match_parent">
               <Button
                  android:id="@+id/button2"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="tab2" />
            </LinearLayout>
         </FrameLayout>
      </LinearLayout>
</TabHost>
</LinearLayout>

在上面的布局中,我们声明了 FrameLayout 作为 Tab 组件的子项(根据 android.com,它需要 FrameLayout 作为 Tab 组件的内容)。

步骤 3 - 将以下代码添加到 src/MainActivity.java 中

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.RadioButton;
import android.widget.TabHost;
public class MainActivity extends AppCompatActivity {
   RadioButton radioButton;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      TabHost tabs = (TabHost) findViewById(R.id.tabhost);
      tabs.setup();
      TabHost.TabSpec spec = tabs.newTabSpec("tag1");
      spec.setContent(R.id.tab1);
      spec.setIndicator("First");
      tabs.addTab(spec);
      spec = tabs.newTabSpec("tag2");
      spec.setContent(R.id.tab2);
      spec.setIndicator("second");
      tabs.addTab(spec);
   }
}

步骤 4 - 无需更改 manifest.xml 文件。

让我们尝试运行您的应用程序。我假设您已将您的实际 Android 移动设备连接到您的计算机。要从 Android Studio 运行应用程序,请打开项目的一个活动文件,然后单击工具栏中的运行   图标。选择您的移动设备作为选项,然后检查您的移动设备,它将显示您的默认屏幕。

现在点击第二个选项卡。它应该会显示如下结果 -

更新于: 2019-07-30

542 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告