`
zhiweiofli
  • 浏览: 515524 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android TabHost布局

阅读更多

 

    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布局

    通过以上步骤,你就可以在Android Studio中实现一个基本的TabHost布局,并且能够根据需求自定义其外观和行为。随着技术的发展,虽然现在更多地使用Fragment和ViewPager来实现类似的功能,但理解并掌握TabHost对于...

    android TabHost简单使用

    在Android开发中,TabHost是一个非常实用的组件,它允许我们创建带有多个选项卡的应用界面,每个选项卡可以展示不同的内容或活动。本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,...

    android Tabhost使用Demo

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以承载不同的活动(Activity)或视图。本Demo主要展示了如何在Android应用中使用TabHost来构建一个多标签的用户界面。...

    Android TabHost Spinner ListView 实例代码

    在Android开发中,`TabHost`、`Spinner`和`ListView`是三个非常重要的组件,它们各自承担着不同的功能,并且可以协同工作以提供丰富的用户界面。`TabHost`用于创建多标签界面,`Spinner`则是一种下拉选择菜单,而`...

    Android 嵌套TabHost示例

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...

    Android TabHost选项卡标签图标始终不出现的解决方法

    在学习Android TabHost布局过程中,很多教程告诉我,这样来显示选项卡标签的图标和文字: TapSpec spec1 = tabHost.newTabSpec(tab 1); spec1.setIndicator(选项卡一, getResources().getDrawable(R.drawable.tab_...

    android tabhost 日期

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个选项卡的用户界面,每个选项卡都可以展示不同的内容或活动。在这个特定的场景中,我们看到标题提及“android tabhost 日期”,这意味着开发者可能在...

    Android Tabhost 实例demo

    在Android开发中,TabHost是一个非常重要的组件,用于创建具有多个Tab标签的界面,每个标签页可以关联一个单独的活动(Activity)或者帧布局(FrameLayout)。本实例演示了如何在Android应用程序中自定义TabHost,以...

    android TabHost自定义选项卡

    在Android应用开发中,TabHost是一个非常重要的组件,它允许我们创建带有多个选项卡的应用界面。这个组件在早期的Android版本中广泛使用,为用户提供了一种便捷的方式来组织和切换不同的视图或活动。本文将深入探讨...

    android TabHost(标签)的使用

    在Android开发中,TabHost是实现标签栏切换界面的一个关键组件。TabHost允许开发者创建一个具有多个Tab的界面,每个Tab都可以关联到不同的布局或活动(Activity),为用户提供直观的多视图导航体验。本文将深入讲解...

    androidTabhost界面切换

    在Android应用开发中,`TabHost` 是一个非常重要的组件,它用于实现多标签页的界面切换,类似于微信、QQ等应用的主界面布局。在本项目中,我们将深入探讨如何利用 `TabHost` 实现类似微信的界面切换效果。 首先,`...

    tabhost布局

    在本资源中,我们看到的是一个底部两栏格式的TabHost布局设计,点击不同选项卡时会弹出相应的界面,并且点击和未点击状态有明显的视觉区分,以提升用户体验。 1. TabHost的基本结构: - TabWidget:这是显示选项卡...

    android Tabhost 实现底部菜单效果

    在Android开发中,TabHost是实现底部导航菜单的一种传统方式,它允许用户在多个标签页之间切换,每个标签页通常代表一个不同的功能区域。本文将详细介绍如何使用TabHost来创建带有图片和文字,并且在选中时有明显...

    android_tabHost布局之一_继承TabActivity并以activity布局.doc

    Android TabHost 布局详解 - 继承 TabActivity 并以 Activity 布局 Android TabHost 布局是 Android 开发中的一种常见布局方式,它允许开发者创建一个带有多个标签页的界面。下面,我们将通过一个实例详解 Android ...

    Android tabhost控件

    `TabHost`是Android SDK提供的一种布局容器,它允许开发者在应用顶部创建一个带有多个标签的导航栏。每个标签对应一个不同的`FrameLayout`或`Activity`,点击标签可以切换显示的内容。`TabHost`通常与`TabWidget`...

    android tabhost用法 源码

    首先,你需要在布局文件中添加TabHost,并为其设置ID为"@android:id/tabhost"。接着,在TabHost中嵌套一个TabWidget和一个FrameLayout,分别用于显示标签和承载内容。 ```xml &lt;TabHost xmlns:android=...

    Android TabHost组件使用方法详解

    在Android开发中,TabHost组件是一个非常实用的控件,用于创建带有标签页的应用界面,让用户可以在多个功能之间轻松切换。本文将详细讲解如何使用TabHost,并通过实例代码进行演示。 首先,TabHost的核心组成部分...

    Android-TabHost.rar_android_android tabhost_tabhost_tabhost andr

    在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。TabHost与TabWidget和FrameLayout一起工作,为每个标签提供一个视图容器。本教程将深入...

    Android TabHost控件讲解

    在Android开发中,TabHost控件是一个非常重要的组件,它被用来实现标签页式界面,让用户可以在多个视图之间切换,提升应用的交互体验。TabHost通常与TabWidget和FrameLayout一起使用,创建一个带有可点击标签的界面...

Global site tag (gtag.js) - Google Analytics