`
寻梦者
  • 浏览: 637976 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

andorid中TabHost的使用

 
阅读更多

tabHost往往被当作程序的通用框架入口,其主要的使用方式有两种: 1.继承TabActivity,结合对应的xml配置文件导入tab选项内容体   2.继承Activity,结合拥有TabHost标签的xml配置文件导入

 

对于1:

 

public class TabExdHostActivity extends TabActivity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		TabHost myTabHost = this.getTabHost();
		LayoutInflater.from(this).inflate(R.layout.exmain, myTabHost.getTabContentView(), true);
		myTabHost.addTab(myTabHost.newTabSpec("选项卡1").setIndicator("选项卡1").setContent(R.id.tab1));
		myTabHost.addTab(myTabHost.newTabSpec("选项卡2").setIndicator("选项卡2").setContent(R.id.tab2));
		myTabHost.addTab(myTabHost.newTabSpec("选项卡3").setIndicator("选项卡3").setContent(R.id.tab3));
	}
}

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<LinearLayout android:id="@+id/tab1" android:layout_width="fill_parent"
		android:layout_height="fill_parent" android:orientation="vertical">
		<TextView android:id="@+id/view1" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="@string/textView_1" />
	</LinearLayout>
	
	<LinearLayout android:id="@+id/tab2" android:layout_width="fill_parent"
		android:layout_height="fill_parent">
		<TextView android:id="@+id/view2" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="@string/textView_2" />
	</LinearLayout>
	
	<LinearLayout android:id="@+id/tab3" android:layout_width="fill_parent"
		android:layout_height="fill_parent" android:orientation="vertical">
		<TextView android:id="@+id/view3" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="@string/textView_3" />
	</LinearLayout>
	
	<LinearLayout android:id="@+id/tab4" android:layout_width="fill_parent"
		android:layout_height="fill_parent" android:orientation="vertical">
		<TextView android:id="@+id/view4" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:text="@string/textView_4" />
	</LinearLayout>
</LinearLayout>

 

对于2:

	
public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tabhost = (TabHost) findViewById(R.id.tabhost);
		tabhost.setup();
		TabHost.TabSpec spec = tabhost.newTabSpec("tab1");
		spec.setContent(R.id.tab1);
		spec.setIndicator("主页");
		tabhost.addTab(spec);

		TabHost.TabSpec spec2 = tabhost.newTabSpec("tab2");
		spec2.setContent(R.id.tab2);
		spec2.setIndicator("主页2");
		tabhost.addTab(spec2);

		TabHost.TabSpec spec3 = tabhost.newTabSpec("tab3");
		spec3.setContent(R.id.tab3);
		spec3.setIndicator("主页3");
		tabhost.addTab(spec3);

		TabHost.TabSpec spec4 = tabhost.newTabSpec("tab4");
		spec4.setContent(R.id.tab4);
		spec4.setIndicator("主页4");
		tabhost.addTab(spec4);

		
		tabhost.setOnTabChangedListener(this);
		
		bt_cg = (Button) findViewById(R.id.bt_cg);
		bt_cg.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(TabHostActivity.this, TabExdHostActivity.class);
				startActivity(intent);
			}
		});

	}

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TabHost android:id="@+id/tabhost" android:layout_width="match_parent"
		android:layout_height="match_parent">
		<LinearLayout android:layout_width="match_parent"
			android:id="@+id/linearLayout1" android:layout_height="match_parent"
			android:orientation="vertical">
			<TabWidget android:layout_width="match_parent"
				android:orientation="vertical" android:layout_height="wrap_content"
				android:id="@android:id/tabs"></TabWidget>
			<FrameLayout android:layout_width="match_parent"
				android:layout_height="match_parent" android:id="@android:id/tabcontent">
				<LinearLayout android:id="@+id/tab1"
					android:layout_width="fill_parent" android:layout_height="fill_parent"
					android:orientation="vertical">
					<TextView android:id="@+id/view1" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="@string/textView_1" />
					<Button android:id="@+id/bt_cg" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="chageTab" />
				</LinearLayout>
				<LinearLayout android:id="@+id/tab2"
					android:layout_width="fill_parent" android:layout_height="fill_parent">
					<TextView android:id="@+id/view2" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="@string/textView_2" />
				</LinearLayout>
				<LinearLayout android:id="@+id/tab3"
					android:layout_width="fill_parent" android:layout_height="fill_parent"
					android:orientation="vertical">
					<TextView android:id="@+id/view3" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="@string/textView_3" />
				</LinearLayout>
				<LinearLayout android:id="@+id/tab4"
					android:layout_width="fill_parent" android:layout_height="fill_parent"
					android:orientation="vertical">
					<TextView android:id="@+id/view4" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="@string/textView_4" />
				</LinearLayout>
			</FrameLayout>

		</LinearLayout>
	</TabHost>
</LinearLayout>

 

 

有时候需要tabhost里面的标签按钮置于底部,可以对xml文件进行如下修改:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TabHost android:id="@+id/tabhost" android:layout_width="match_parent"
		android:layout_height="match_parent">
		<RelativeLayout android:layout_width="match_parent"
			android:id="@+id/linearLayout1" android:layout_height="match_parent"
			android:orientation="vertical">
			<TabWidget android:layout_width="match_parent"
			    android:layout_alignParentBottom="true"
				android:orientation="vertical" android:layout_height="wrap_content"
				android:id="@android:id/tabs"></TabWidget>
			<FrameLayout android:layout_width="match_parent"
				android:layout_height="match_parent" android:id="@android:id/tabcontent">
				<LinearLayout android:id="@+id/tab1"
					android:layout_width="fill_parent" android:layout_height="fill_parent"
					android:orientation="vertical">
					<TextView android:id="@+id/view1" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="@string/textView_1" />
					<Button android:id="@+id/bt_cg" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="chageTab" />
				</LinearLayout>
				<LinearLayout android:id="@+id/tab2"
					android:layout_width="fill_parent" android:layout_height="fill_parent">
					<TextView android:id="@+id/view2" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="@string/textView_2" />
				</LinearLayout>
				<LinearLayout android:id="@+id/tab3"
					android:layout_width="fill_parent" android:layout_height="fill_parent"
					android:orientation="vertical">
					<TextView android:id="@+id/view3" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="@string/textView_3" />
				</LinearLayout>
				<LinearLayout android:id="@+id/tab4"
					android:layout_width="fill_parent" android:layout_height="fill_parent"
					android:orientation="vertical">
					<TextView android:id="@+id/view4" android:layout_width="wrap_content"
						android:layout_height="wrap_content" android:text="@string/textView_4" />
				</LinearLayout>
			</FrameLayout>

		</RelativeLayout>
	</TabHost>
</LinearLayout>

 效果如图:


 

 

  • 大小: 7.3 KB
分享到:
评论

相关推荐

    Android中TabHost使用

    本篇文章将详细讲解如何在Android中使用TabHost,包括其基本概念、设置过程以及实现Activity之间的切换跳转。 **TabHost的基本概念** TabHost是Android SDK中的一个视图容器,它允许开发者在一个界面上展示多个Tab...

    Android 嵌套TabHost示例

    4. 子TabHost的创建和设置与主TabHost相似,只是它们的生命周期与主TabHost中的标签关联,当用户切换主TabHost的标签时,子TabHost也会相应地改变。 在"DoubleTabHost"这个示例中,我们可以看到如何实现这种嵌套...

    android TabHost简单使用

    本篇文章将详细介绍如何在Android项目中使用TabHost,以及它的工作原理。 首先,我们需要理解TabHost的基本结构。TabHost是一个容器,它包含两个主要组件:TabWidget和FrameLayout。TabWidget用于显示和管理各个...

    androidtabhost的使用

    androidTabhost的使用实例代码,仅供参考

    android Tabhost使用Demo

    本Demo主要展示了如何在Android应用中使用TabHost来构建一个多标签的用户界面。下面我们将深入探讨TabHost的使用方法以及涉及到的相关知识点。 1. **TabHost的基本概念** TabHost是一个容器,它可以在一个窗口内...

    TabHost的使用方法

    记得在项目中导入所需的依赖库,例如`androidx.appcompat.widget.TabHost`,这取决于你的项目所使用的Android支持库版本。 以上就是关于TabHost的详细使用方法,希望对初学者在理解并实现选项卡界面时有所帮助。...

    Android studio TabHost布局

    本文将详细讲解如何在Android Studio中使用TabHost进行布局设计,以及如何自定义TabHost的各项属性,如字体颜色、大小等。 一、TabHost的基本概念 TabHost是Android SDK提供的一种布局容器,可以容纳一个或多个...

    android的tabhost的一个例子

    总之,Android的TabHost结合ActivityGroup可以创建一个具有多页面选项卡的用户界面,虽然在现代Android开发中,通常建议使用Fragment替代ActivityGroup,但理解这种旧的实现方式对理解Android历史和一些老项目依然很...

    android TabHost(标签)的使用

    本文将深入讲解如何在Android中使用TabHost,并通过一个简单实例来演示其基本用法。 首先,我们需要了解TabHost的基本结构。TabHost通常包含两个主要部分:TabWidget和FrameLayout。TabWidget负责显示和管理各个Tab...

    自定义Android中TabHost组件显示在屏幕底部,并实现滑动切换页面(源码下载)

    在XML布局文件中,可以使用`android:layout_gravity="bottom"`属性将TabHost固定在底部。同时,可能还需要对父布局设置`android:orientation="vertical"`和`android:gravity="bottom"`,确保整个布局从顶部到底部...

    android自定义TabHost

    最后,使用`TabHost.addTab()`将TabSpec添加到TabHost中。 5. **动态改变背景颜色**: 如果需要在运行时改变背景颜色,可以在用户触发某个事件(如点击按钮)时,使用`ColorDrawable`动态设置TabHost的背景颜色,...

    实例讲解Android应用开发中TabHost的使用要点

    本文将通过实例详细讲解如何在Android应用中使用TabHost。 首先,我们要理解TabHost和TabWidget的关系。TabHost是一个容器,它包含了TabWidget和一个FrameLayout( Framelayout)。TabWidget是显示和管理各个Tab的...

    Android TabHost组件使用方法详解

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

    Android-TabHost.rar_android_android tabhost_tabhost_tabhost andr

    你可以创建一个XML布局文件来定义每个标签的样式,然后在`TabSpec.setIndicator()`方法中使用自定义的视图。 ```java View indicatorView = getLayoutInflater().inflate(R.layout.custom_tab, null); TextView ...

    Android的tabHost案例

    本案例是为初学者设计的,旨在帮助理解如何在Android应用中有效地使用TabHost。 TabHost是Android提供的一个容器,它允许你将多个小部件(通常是一个TabWidget和一个FrameLayout)组合在一起,形成一个多标签的视图...

    android中tabhost各种实例及用法

    在Android开发中,TabHost是实现标签栏切换页面的一个关键组件。TabHost允许开发者创建具有多个标签页的应用,每个标签页可以对应一个不同的活动(Activity)或者帧布局(FrameLayout)。下面将详细介绍如何使用...

    android TabHost自定义选项卡

    // 在代码中使用自定义布局 View tabView = getLayoutInflater().inflate(R.layout.custom_tab, null); ((TextView) tabView.findViewById(R.id.tab_text)).setText("标签1"); tab1.setIndicator(tabView); ``` 5. ...

    android开发 tabhost应用

    在Android开发中,TabHost是一个非常重要的组件,它允许开发者创建多标签的界面,类似于浏览器中的标签页。这个“android开发 tabhost应用”的主题聚焦于如何利用TabHost来实现一个可滚动并能调整文字居中显示的Tab...

Global site tag (gtag.js) - Google Analytics