Android中使用TabHost 可以在一个屏幕间进行不同版面的切换:
在Android中要实现Tab切换页面的效果,大致有两种方法:一是利用layout下的xml配置来实现tab的布局,二是动态加载tabHost进行布局。
1、利用xml文件配置,引用xml的activity不用继承于TabActivity,通过findViewById方法获取TabHost,
具体的xml见下:
<?xml version="1.0" encoding="utf-8"?>
<TabHost android:id="@+id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<!-- this is tabs content -->
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:paddingBottom="62px">
<!-- tab1 content -->
<LinearLayout android:id="@+id/content1"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
。。。。。。。。。。。。
</LinearLayout>
<!-- tab2 content -->
<LinearLayout android:id="@+id/content2"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
。。。。。。。。。。。
</LinearLayout>
</FrameLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
</LinearLayout>
</TabHost>
xml中TabHost,FrameLayout,TabWidget 元素都要引用系统的id,若改用其他id会抛异常的,绿色的部分可以自定义
Activity部分代码:
setContentView(R.layout.***); //设置上面的xml文件
TabHost tabhost = (TabHost) findViewById(R.id.tabhost);
tabhost.setup(); // 初始化TabHost容器
// tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1", null).setContent(R.id.content1));
TabHost.TabSpec tab_1 = tabhost.newTabSpec("tab_1"); // 设置一个tab
tab_1.setContent(R.id.content1); // 设置tab里面的布局
tab_1.setIndicator("按地名查询"); // 设置tab的标题和图表
tabhost.addTab(tab_1); // 在tabhost上添加新的tab
// tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("tab2", null).setContent(R.id.content2));
TabHost.TabSpec tab_2 = tabhost.newTabSpec("tab_2");
tab_2.setContent(R.id.content2);
tab_2.setIndicator("按起点终点查询");
tabhost.addTab(tab_2);
// 设置默认显示第几个tab
tabhost.setCurrentTab(0);
2、继承TabActivity 类,,Activity中使用getTabHost()获得TabHost,使用android的自己内部定义好的.xml资源文件作容器文件,进行动态布局;
tab_search.xml,用来布局tabHost下的content
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tab_hs_id">
<TextView android:id="@+id/tab_search_tv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</FrameLayout>
Activity中的代码:
tabHost = getTabHost();
LayoutInflater inflater_tab3 = LayoutInflater.from(this);
inflater_tab3.inflate(R.layout.tab_search, tabHost.getTabContentView());
/*
* R.layout.tab_search已被LayoutInflater注册,所以这个content可以通过findViewById获得其对象
*/
TabHost.TabSpec tabSpec_near = tabHost.newTabSpec("nearest");
tabSpec_near.setIndicator("Nearest", null);
tabSpec_near.setContent(R.id.tab_hs_id); // 绑定一个新的Layout
tabHost.addTab(tabSpec_near); //添加一个tab
setContentView(tabHost); //设置avtivity的布局为tabHost
分享到:
相关推荐
通过以上步骤,你就可以在Android Studio中实现一个基本的TabHost布局,并且能够根据需求自定义其外观和行为。随着技术的发展,虽然现在更多地使用Fragment和ViewPager来实现类似的功能,但理解并掌握TabHost对于...
在Android开发中,TabHost是一个非常实用的组件,它允许我们创建带有多个选项卡的应用界面,每个选项卡可以展示不同的内容或活动。本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的活动(Activity)或视图。本Demo主要展示了如何在Android应用中使用TabHost来构建一个多标签的用户界面。...
在Android开发中,`TabHost`、`Spinner`和`ListView`是三个非常重要的组件,它们各自承担着不同的功能,并且可以协同工作以提供丰富的用户界面。`TabHost`用于创建多标签界面,`Spinner`则是一种下拉选择菜单,而`...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...
在学习Android TabHost布局过程中,很多教程告诉我,这样来显示选项卡标签的图标和文字: TapSpec spec1 = tabHost.newTabSpec(tab 1); spec1.setIndicator(选项卡一, getResources().getDrawable(R.drawable.tab_...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动。在这个特定的场景中,我们看到标题提及“android tabhost 日期”,这意味着开发者可能在...
在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以关联一个单独的活动(Activity)或者帧布局(FrameLayout)。本实例演示了如何在Android应用程序中自定义TabHost,以...
在Android应用开发中,TabHost是一个非常重要的组件,它允许我们创建带有多个选项卡的应用界面。这个组件在早期的Android版本中广泛使用,为用户提供了一种便捷的方式来组织和切换不同的视图或活动。本文将深入探讨...
在Android开发中,TabHost是实现标签栏切换界面的一个关键组件。TabHost允许开发者创建一个具有多个Tab的界面,每个Tab都可以关联到不同的布局或活动(Activity),为用户提供直观的多视图导航体验。本文将深入讲解...
在Android应用开发中,`TabHost` 是一个非常重要的组件,它用于实现多标签页的界面切换,类似于微信、QQ等应用的主界面布局。在本项目中,我们将深入探讨如何利用 `TabHost` 实现类似微信的界面切换效果。 首先,`...
在本资源中,我们看到的是一个底部两栏格式的TabHost布局设计,点击不同选项卡时会弹出相应的界面,并且点击和未点击状态有明显的视觉区分,以提升用户体验。 1. TabHost的基本结构: - TabWidget:这是显示选项卡...
在Android开发中,TabHost是实现底部导航菜单的一种传统方式,它允许用户在多个标签页之间切换,每个标签页通常代表一个不同的功能区域。本文将详细介绍如何使用TabHost来创建带有图片和文字,并且在选中时有明显...
Android TabHost 布局详解 - 继承 TabActivity 并以 Activity 布局 Android TabHost 布局是 Android 开发中的一种常见布局方式,它允许开发者创建一个带有多个标签页的界面。下面,我们将通过一个实例详解 Android ...
`TabHost`是Android SDK提供的一种布局容器,它允许开发者在应用顶部创建一个带有多个标签的导航栏。每个标签对应一个不同的`FrameLayout`或`Activity`,点击标签可以切换显示的内容。`TabHost`通常与`TabWidget`...
首先,你需要在布局文件中添加TabHost,并为其设置ID为"@android:id/tabhost"。接着,在TabHost中嵌套一个TabWidget和一个FrameLayout,分别用于显示标签和承载内容。 ```xml <TabHost xmlns:android=...
在Android开发中,TabHost组件是一个非常实用的控件,用于创建带有标签页的应用界面,让用户可以在多个功能之间轻松切换。本文将详细讲解如何使用TabHost,并通过实例代码进行演示。 首先,TabHost的核心组成部分...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。TabHost与TabWidget和FrameLayout一起工作,为每个标签提供一个视图容器。本教程将深入...
在Android开发中,TabHost控件是一个非常重要的组件,它被用来实现标签页式界面,让用户可以在多个视图之间切换,提升应用的交互体验。TabHost通常与TabWidget和FrameLayout一起使用,创建一个带有可点击标签的界面...