先看一下效果:
TabHost是整个Tab的容器,包括两部分:
TabWidget和
FrameLayout。TabWidget就是每个tab的标签,FrameLayout则是tab内容。
TabHost的二种实现方式:
第一种:继承TabActivity
第二种:只是单纯的继承Activity类
下面是实现的效果:
第一种:继承TabActivity
1、如果我们使用extendsTabAcitivty,如同ListActivity,TabHost必须设置为 @android:id/tabhost
2、TabWidget必须设置android:id为@android:id/tabs
3、FrameLayout需要设置android:id为@android:id/tabcontent
布局文件 activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="visible"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0.0dp"
android:layout_weight="1.0"
android:background="@android:color/white">
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
下面是继承TabActivity
public class MainActivity extends TabActivity{
TabHosttabHost ;
RadioGroupradioGroup;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabHost =getTabHost();
tabHost.addTab(
tabHost.newTabSpec("trends")
.setIndicator("动态")
.setContent(newIntent(MainActivity.this,TrendsActivity.class)));
tabHost.addTab(
tabHost.newTabSpec("groups")
.setIndicator("群组")
.setContent(newIntent(MainActivity.this,GroupsActivity.class)));
}
}
第二种:不继承任何类在代码里加载
布局文件 和上面一样 只是TabHost 的id 换为其他
activity_main.xml
继承Activity类
public class MainActivity extends ActivityGroup{
TabHost tabHost ;
RadioGroupradioGroup;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabHost = (TabHost)findViewById(R.id.m_tabhost);
//如果通过findViewById得到TabHost一定要调用 TabHost.setup();
LocalActivityManagerlocalAcManager = new LocalActivityManager(MainActivity.this,true);
localAcManager.dispatchCreate(savedInstanceState);
tabHost.setup(localAcManager);
tabHost.addTab(tabHost.newTabSpec("trends").setIndicator("动态").setContent(newIntent(MainActivity.this,TrendsActivity.class)));
tabHost.addTab(tabHost.newTabSpec("groups").setIndicator("群组").setContent(newIntent(MainActivity.this,GroupsActivity.class)));
}
}
两种介绍完了。但系统提供的TabHost不好看,修改很难...
看了下别人的 大概是这样修改的,就第二种方法而言,其他不改,把TabWidget空间变为不可见,然后自己弄些控件替代。
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
更多参考:
http://nodebook.info/book/view?bid=5354725719980e913e9be3f1
http://www.apkbus.com/android-82426-1-1.html
http://www.apkbus.com/android-720-1-1.html
- 大小: 11.1 KB
- 大小: 30.3 KB
分享到:
相关推荐
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的活动(Activity)或视图。本Demo主要展示了如何在Android应用中使用TabHost来构建一个多标签的用户界面。...
在Android开发中,`TabHost`、`Spinner`和`ListView`是三个非常重要的组件,它们各自承担着不同的功能,并且可以协同工作以提供丰富的用户界面。`TabHost`用于创建多标签界面,`Spinner`则是一种下拉选择菜单,而`...
androidTabhost的使用实例代码,仅供参考
android tabhost 动态添加 删除 排序 重命名
android tabhost 动态添加,删除,排序,重命名
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动。在这个特定的场景中,我们看到标题提及“android tabhost 日期”,这意味着开发者可能在...
android tabhost 动态添加,删除,排序,重命名
在Android开发中,TabHost是一个非常实用的组件,它允许我们创建带有多个选项卡的应用界面,每个选项卡可以展示不同的内容或活动。本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,...
android TabHost分页 demo 一开始就能用
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以关联一个单独的活动(Activity)或者帧布局(FrameLayout)。本实例演示了如何在Android应用程序中自定义TabHost,以...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...
在Android开发中,TabHost是实现底部导航菜单的一种传统方式,它允许用户在多个标签页之间切换,每个标签页通常代表一个不同的功能区域。本文将详细介绍如何使用TabHost来创建带有图片和文字,并且在选中时有明显...
在Android开发中,TabHost是一个核心组件,它用于创建具有多个可切换标签的用户界面,类似于浏览器中的标签页。TabHost结合TabWidget和FrameLayout一起工作,提供了在单个屏幕上组织多个活动(Activities)或视图...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以关联到一个不同的Activity或Fragment,实现多页面的切换。本实例提供了一个完整的TabHost应用源码,帮助开发者...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的Activity或Fragment,实现多视图的切换。本文将深入探讨Android TabHost的经典使用技巧,帮助开发者构建...
在Android开发中,TabHost是一个常用的组件,用于创建带有多个Tab的界面,这些Tab可以切换不同的内容区域。然而,Android SDK中的默认TabHost设计将标签置于屏幕顶部或底部,这可能无法满足所有开发者的设计需求。在...
在Android开发中,TabHost是实现标签栏布局的重要组件,它是Android SDK提供的一种原生UI控件,用于创建带有多个选项卡的应用界面。这个“android tabhost --android UI源码.rar”压缩包文件包含了关于如何使用...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,让用户可以在不同的视图间切换,从而实现类似浏览器的导航体验。本项目源码着重展示了如何利用TabHost构建复杂的Android UI。以下...