TabHost是一个包含一组选项卡的容器。每个选项卡均由活动或片段组成。 TabHost包含两个子元素,其中一个是FrameLayout(用于显示活动的内容),另一个是TabWidget(用于选择用户要打开的选项卡)。通常,Tabhost是在LinearLayout的帮助下用于项目中的。
TabHost的重要方法
- addTab(TabSpec tabSpec):此方法用于将新选项卡添加到选项卡小部件上。每当使用TabSpec类指定新选项卡时,都需要在我们的TabHost中添加该选项卡。
// initiate TabHost
TabHost tabhost = (TabHost) findViewById(R.id.tabhost);
// setting up the tabhost
tabhost.setup();
// setting the name of the new tab
TabHost.TabSpec spec = tabhost.newTabSpec(“Tab One”);
spec.setContent(R.id.tab1);
spec.setIndicator(“Tab One”);
// adding the tab to tabhost
tabhost.addTab(spec);
- clearAllTabs():此方法用于清除选项卡宿主内的所有选项卡。如上所示添加选项卡后,如果有人想从TabHost清除选项卡,请编写以下代码。
tabHost.clearAllTabs(); // this method is used to clear all the tabs from tabhost
- setOnTabChangedListener(OnTabChangeListener):此方法用于注册当此列表中任何项目的选定状态更改时需要调用的回调。当列表中任何选定项的状态更改时,需要调用回调并进行注册时,可以使用此方法。
- setCurrentTab(int index):默认情况下,选项卡托管将第一个选项卡位置设置为启动应用程序时出现的默认位置,但是我们可以使用这些方法显式更改选项卡的默认位置。 (位置从0开始)
tabHost.setCurrentTab(1); // it will set second tab as default selected tab
例子
让我们尝试通过制作一个小项目来详细了解TabHost。下面的样本GIF给予获得什么,我们要在这个项目做的想法。注意,我们将使用Java语言实现该项目。
分步实施
步骤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);
}
}