通常情况下我们会通过继承TabActivity,调用getTabHost()获取TabHost实例,下面是具体过程。
TabHostActivity.java
public class TabHostActivity extends TabActivity {
private TabHost tabHost;
private Intent certificateIntent;
private Intent feeIntent;
private Intent scoreIntent;
private Intent studyIntent;
private Intent moreIntent;
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tabHost = getTabHost();
initIntent();
addSpec();
}
/**
* 初始化各个tab标签对应的intent
*/
privatevoid initIntent() {
studyIntent = new Intent(this, StudyActivity.class);
scoreIntent = new Intent(this, ScoreActivity.class);
feeIntent = new Intent(this, FeeActivity.class);
certificateIntent = new Intent(this, CertificateActivity.class);
moreIntent = new Intent(this, MoreActivity.class);
}
/**
* 为tabHost添加各个标签项
*/
privatevoid addSpec() {
tabHost.addTab(this.buildTagSpec("tab_study",
R.string.study_progress,R.drawable.account01, studyIntent));
tabHost.addTab(this.buildTagSpec("tab_score",
R.string.test_score,R.drawable.account02, scoreIntent));
tabHost.addTab(this.buildTagSpec("tab_fee",
R.string.fee_pay,R.drawable.account03, feeIntent));
tabHost.addTab(this.buildTagSpec("tab_certificate", R.string.certificate_grant,R.drawable.accountcertificateIntent));
tabHost.addTab(this.buildTagSpec("tab_more", R.string.more,
R.drawable.account05, moreIntent));
}
/**
* 自定义创建标签项的方法
* @param tagName 标签标识
* @param tagLable 标签文字
* @param icon 标签图标
* @param content 标签对应的内容
* @return
*/
private TabHost.TabSpec buildTagSpec(String tagName, int tagLable,
int icon, Intent content) {
returntabHost
.newTabSpec(tagName)
.setIndicator(getResources().getString(tagLable),
getResources().getDrawable(icon)).setContent(content);
}}
运行结果如下图所示
我们发现标签位置处于界面上方,但是我们看到的很多应用的标签都处于界面底部。
如下图所示
我们要实现这种效果只需要将TabActivity的默认布局覆盖即可。新布局只需将标签和标签对应内容的相对位置调换一下就可以了,这里是用相对布局将标签对应内容的位置放到了标签的上方。不要改动id(会抛异常,提示必须要用指定的id)。不要忘了在onCreate()里设置新布局将TabActivity的默认布局覆盖。
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab);
tabHost = getTabHost();
initIntent();
addSpec();
}
tab.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- TabHost组件id值不可变-->
<TabHostxmlns:android=http://schemas.android.com/apk/res/android
android:id="@android:id/tabhost"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<RelativeLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- TabWidget组件id值不可变-->
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
</TabWidget>
<!-- FrameLayout布局,id值不可变-->
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@android:id/tabs">
</FrameLayout>
</RelativeLayout>
</TabHost>
通常在项目中我们都会有一个自定义的Activity基类,我们会让所有的界面Activity去继承这个基类。但是要使用TabHost就要继承TabActivity,所以我们可以定义两个基类,一个是普通Activity界面的基类,另一个是包含TabHost界面的基类,让这个基类继承TabActivity即可。
转自:http://www.cnblogs.com/wader2011/archive/2011/10/11/2207670.html
相关推荐
下面将详细介绍TabHost的使用方法,以及如何通过源码进行理解和实践。 一、TabHost的结构与工作原理 TabHost主要由两个核心组件组成:TabWidget和FrameLayout。TabWidget显示了可点击的标签,而FrameLayout用于...
### TabHost 使用方法详解 #### 一、TabHost 概述 TabHost 是 Android 提供的一个用于实现标签式导航的控件,它可以帮助开发者轻松地创建具有多个标签页的应用程序界面。通过 TabHost,用户可以在不同的标签页之间...
Android TabHost用法详解,非常好的实例
下面将详细介绍TabHost的使用方法,以及如何通过它来构建用户友好的多页面应用。 1. TabHost的基本结构: TabHost主要由两个组件组成:TabWidget和FrameLayout。TabWidget显示各个标签,而FrameLayout用于展示被...
使用`TabHost.setup()`方法初始化TabHost,这个方法会将TabHost的默认布局设置为包含`TabWidget`和`FrameLayout`。 3. **添加Tab** 通过`TabHost.newTabSpec()`创建一个TabSpec,然后设置它的标签文字、图标以及...
在Android开发中,TabHost...总结,TabHost是构建多标签界面的关键组件,掌握其使用方法对于开发高效、用户友好的Android应用至关重要。结合源码理解和工具辅助,能更好地优化和调试TabHost相关的代码,提升应用质量。
一、TabHost用法 通常情况下我们会通过继承TabActivity,调用getTabHost()获取TabHost实例,下面是具体过程。 TabHostActivity.java public class TabHostActivity extends TabActivity { private TabHost tabHost...
本文将详细介绍Tab和TabHost的使用方法,并通过一个实际的源码实例来加深理解。 首先,Tab是Android UI设计中的一种常见元素,通常用于展示多个可选的导航选项。每个Tab代表一个独立的页面或视图,用户可以通过点击...
首先,我们来理解基本的TabHost用法。TabHost通常由两部分组成:TabWidget和FrameLayout。TabWidget是显示选项卡的部分,而FrameLayout则用来展示被选中选项卡的内容。通过TabSpec对象,我们可以设置每个选项卡的...
TabHost+FrameLayout详细用法实例源代码
本教程将深入讲解如何使用TabHost实现全面的功能,帮助开发者掌握这一核心组件。 首先,TabHost是一个容器,它允许你将多个TabWidget(选项卡)和一个FrameLayout(内容区域)组合在一起。TabWidget显示选项卡,而...
在Android开发中,TabHost是一个非常重要的组件,用于...以上就是关于TabHost的详细使用方法,希望对初学者在理解并实现选项卡界面时有所帮助。通过实践和学习,你可以掌握更多高级特性,提升Android应用的用户体验。
本文实例讲述了Android控件之TabHost用法。分享给大家供大家参考。具体如下: 以下通过TabHost实现android选项卡。 main.xml布局文件: <?xml version=1.0 encoding=utf-8?> android:layout_width=fill_...
3. **添加选项卡**:使用`TabHost.addTab()`方法为`TabHost`添加新的选项卡。每个选项卡都需要一个标签(标签文本),一个意图(Intent)来启动关联的活动,以及可选的定制属性(如图标)。 4. **设置默认选中项**:...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建具有多个标签(Tab)的界面,每个标签...通过学习这个示例,开发者可以更好地掌握Android中的TabHost用法,从而创建出更加丰富和用户友好的应用界面。
本文将详细讲解如何使用TabHost,并通过实例代码进行演示。 首先,TabHost的核心组成部分包括TabWidget(标签栏)和FrameLayout(内容区域)。在布局文件`main.xml`中,可以看到TabHost的结构: ```xml <TabHost ...
下面我们将深入探讨TabHost的使用方法以及涉及到的相关知识点。 1. **TabHost的基本概念** TabHost是一个容器,它可以在一个窗口内展示多个Tab标签,并且每个标签可以链接到不同的布局或Activity。TabHost通常与...
**TabHost使用与源码分析** TabHost是Android系统中用于创建多标签界面的一个关键组件,它使得在同一个Activity中可以展示多个Fragment或者Activity。在Android应用开发中,TabHost通常用于实现类似iOS中的TabBar...
本篇文章将深入探讨如何在Android应用中实现TabHost的简单使用。 首先,我们需要在布局文件中设置TabHost。一个基本的TabHost布局可能如下所示: ```xml <TabHost xmlns:android=...