使用TabHost组件继承TabActivity的布局方法可以让我们在Android应用中快速实现底部切换页面的功能。下面我将详细讲解完整攻略。
使用TabHost组件继承TabActivity的布局方法可以让我们在Android应用中快速实现底部切换页面的功能。下面我将详细讲解完整攻略。
准备工作
在使用TabHost组件之前,需要先引入相应的库。在build.gradle文件中添加以下依赖:
dependencies{
implementation 'com.android.support:appcompat-v7:28.0.0'
}
布局
在布局文件中添加TabHost组件,并设置子标签
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:background="#FFFFFF"
android:layout_height="0dp"
android:layout_weight="1"/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/></LinearLayout>
</TabHost>
</RelativeLayout>
继承TabActivity
为了让TabHost组件能够正常使用,需要继承自TabActivity。在Java文件中添加以下代码:
public class MainActivity extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化TabHost
TabHost tabHost = getTabHost();
//创建第一个Tab并添加到TabHost中
TabHost.TabSpec tab1 = tabHost.newTabSpec("Tab1")
.setIndicator("Tab1")
.setContent(new Intent(this, TabActivity1.class));
tabHost.addTab(tab1);
//创建第二个Tab并添加到TabHost中
TabHost.TabSpec tab2 = tabHost.newTabSpec("Tab2")
.setIndicator("Tab2")
.setContent(new Intent(this, TabActivity2.class));
tabHost.addTab(tab2);
}
}
示例
以两个TabActivity为例,分别实现两个Tab标签的功能。
TabActivity1
public class TabActivity1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tab1);
TextView textView = findViewById(R.id.text1);
textView.setText("这是第一个Tab的内容");
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
TabActivity2
public class TabActivity2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tab2);
TextView textView = findViewById(R.id.text2);
textView.setText("这是第二个Tab的内容");
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
在TabActivity的onCreate方法中,通过TabHost.TabSpec来创建每一个Tab。其中,setIndicator中传入的字符串为Tab上显示的文本。setContent中传入的Intent则是该Tab所对应的Activity(即标签被点击后显示的内容)。每个Tab中可以放置任意布局。
完成以上步骤后,就可以成功使用TabHost组件继承TabActivity的布局方法了。
本文标题为:Android应用中使用TabHost组件继承TabActivity的布局方法
基础教程推荐
- jsp图片效果大全(图像震动效果、闪烁效果、自动切换图像) 2023-08-02
- JSP连接Access数据库 2023-12-16
- 我在生产项目里是如何使用Redis发布订阅的?(二)Java版代码实现(含源码) 2023-11-05
- 全局记录Feign的请求和响应日志方式 2023-01-09
- Eclipse XSD 生成枚举类型的Schema的实例详解 2023-07-31
- Java使用POI导出Excel(二):多个sheet 2023-06-06
- 一文弄懂fastjson 2023-07-14
- java使用OGEngine开发2048 2024-01-11
- Java实现AI五子棋游戏的示例代码 2023-05-19
- Java实现ATM机操作系统 2022-11-16