📜  Android中的TabHost示例

📅  最后修改于: 2021-05-09 18:35:36             🧑  作者: Mango

TabHost是一个包含一组选项卡的容器。每个选项卡均由活动或片段组成。 TabHost包含两个子元素,其中一个是FrameLayout(用于显示活动的内容),另一个是TabWidget(用于选择用户要打开的选项卡)。通常,Tabhost是在LinearLayout的帮助下用于项目中的。

TabHost的重要方法

  • addTab(TabSpec tabSpec):此方法用于将新选项卡添加到选项卡小部件上。每当使用TabSpec类指定新选项卡时,都需要在我们的TabHost中添加该选项卡。
  • clearAllTabs():此方法用于清除选项卡宿主内的所有选项卡。如上所示添加选项卡后,如果有人想从TabHost清除选项卡,请编写以下代码。
  • setOnTabChangedListener(OnTabChangeListener):此方法用于注册当此列表中任何项目的选定状态更改时需要调用的回调。当列表中任何选定项的状态更改时,需要调用回调并进行注册时,可以使用此方法。
  • setCurrentTab(int index):默认情况下,选项卡托管将第一个选项卡位置设置为启动应用程序时出现的默认位置,但是我们可以使用这些方法显式更改选项卡的默认位置。 (位置从0开始)

例子

让我们尝试通过制作一个小项目来详细了解TabHost。下面的样本GIF给予获得什么,我们要在这个项目做的想法注意,我们将使用Java语言实现该项目。

Android示例GIF中的TabHost

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。

步骤2:使用activity_main.xml文件

现在转到代表应用程序UI的activity_main.xml文件。以下是activity_main.xml文件的代码。在代码内部添加了注释,以更详细地了解代码。

XML



  
    
  
        
  
            
            
  
            
            
  
                
                
  
                    
                    
                
  
                
                
  
                    
                    
                
  
                
                
  
                    
                    
                
  
            
        
    


Java
import android.os.Bundle;
import android.widget.TabHost;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // initiating the tabhost
        TabHost tabhost = (TabHost) findViewById(R.id.tabhost);
  
        // setting up the tab host
        tabhost.setup();
  
        // Code for adding Tab 1 to the tabhost
        TabHost.TabSpec spec = tabhost.newTabSpec("Tab One");
        spec.setContent(R.id.tab1);
  
        // setting the name of the tab 1 as "Tab One"
        spec.setIndicator("Tab One");
  
        // adding the tab to tabhost
        tabhost.addTab(spec);
  
        // Code for adding Tab 2 to the tabhost
        spec = tabhost.newTabSpec("Tab Two");
        spec.setContent(R.id.tab2);
  
        // setting the name of the tab 1 as "Tab Two"
        spec.setIndicator("Tab Two");
        tabhost.addTab(spec);
  
        // Code for adding Tab 3 to the tabhost
        spec = tabhost.newTabSpec("Tab Three");
        spec.setContent(R.id.tab3);
        spec.setIndicator("Tab Three");
        tabhost.addTab(spec);
    }
}


步骤3:使用MainActivity.kt文件

转到MainActivity。 Java文件,并参考以下代码。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。

Java

import android.os.Bundle;
import android.widget.TabHost;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // initiating the tabhost
        TabHost tabhost = (TabHost) findViewById(R.id.tabhost);
  
        // setting up the tab host
        tabhost.setup();
  
        // Code for adding Tab 1 to the tabhost
        TabHost.TabSpec spec = tabhost.newTabSpec("Tab One");
        spec.setContent(R.id.tab1);
  
        // setting the name of the tab 1 as "Tab One"
        spec.setIndicator("Tab One");
  
        // adding the tab to tabhost
        tabhost.addTab(spec);
  
        // Code for adding Tab 2 to the tabhost
        spec = tabhost.newTabSpec("Tab Two");
        spec.setContent(R.id.tab2);
  
        // setting the name of the tab 1 as "Tab Two"
        spec.setIndicator("Tab Two");
        tabhost.addTab(spec);
  
        // Code for adding Tab 3 to the tabhost
        spec = tabhost.newTabSpec("Tab Three");
        spec.setContent(R.id.tab3);
        spec.setIndicator("Tab Three");
        tabhost.addTab(spec);
    }
}

输出:

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!