`

标准TabHost的应用

XML 
阅读更多
public class Activity01 extends TabActivity {
	// 声明TabHost对象
	TabHost mTabHost;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// 取得TabHost对象
		mTabHost = getTabHost();

		/* 为TabHost添加标签 */
		// 新建一个newTabSpec(newTabSpec)
		// 设置其标签和图标(setIndicator)
		// 设置内容(setContent)
		mTabHost.addTab(mTabHost
				.newTabSpec("tab_test1")
				.setIndicator("TAB 1",
						getResources().getDrawable(R.drawable.img1))
				.setContent(R.id.mLayout1));
		mTabHost.addTab(mTabHost
				.newTabSpec("tab_test2")
				.setIndicator("TAB 2",
						getResources().getDrawable(R.drawable.img2))
				.setContent(R.id.mLayout2));
		mTabHost.addTab(mTabHost
				.newTabSpec("tab_test3")
				.setIndicator("TAB 3",
						getResources().getDrawable(R.drawable.img3))
				.setContent(R.id.mLayout3));

		// 设置TabHost的背景颜色
		mTabHost.setBackgroundColor(Color.argb(150, 22, 70, 150));
		// 设置TabHost的背景图片资源
		// mTabHost.setBackgroundResource(R.drawable.bg0);

		// 设置当前显示哪一个标签
		mTabHost.setCurrentTab(0);
		mTabHost.setBackgroundResource(R.drawable.df);

		// 标签切换事件处理,setOnTabChangedListener
		mTabHost.setOnTabChangedListener(new OnTabChangeListener() {
			// TODO Auto-generated method stub
			@Override
			public void onTabChanged(String tabId) {
				Dialog dialog = new AlertDialog.Builder(Activity01.this)
						.setTitle("提示")
						.setMessage("当前选中:" + tabId + "标签")
						.setPositiveButton("确定",
								new DialogInterface.OnClickListener() {
									public void onClick(DialogInterface dialog,
											int whichButton) {
										dialog.cancel();
									}
								}).create();// 创建按钮

				dialog.show();
			}
		});
	}
}



main.xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@android:id/tabhost" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<LinearLayout android:orientation="vertical"
		android:layout_width="fill_parent" android:layout_height="fill_parent">
		<TabWidget android:id="@android:id/tabs"
			android:layout_width="fill_parent" android:layout_height="wrap_content" />
		<FrameLayout android:id="@android:id/tabcontent"
			android:layout_width="fill_parent" android:layout_height="fill_parent">
			<include android:id="@+id/mLayout1" layout="@layout/layout1" />
			<include android:id="@+id/mLayout2" layout="@layout/layout2" />
			<include android:id="@+id/mLayout3" layout="@layout/layout3" />
		</FrameLayout>
	</LinearLayout>
</TabHost>



其中layout1,2,3可以自定义;
分享到:
评论

相关推荐

    Android应用源码可以横向拖动的TabHost-IT计算机-毕业设计.zip

    4. 自定义TabLayout:在标准的TabHost中,Tab的样式和行为可能不能满足所有需求,因此开发者需要自定义TabLayout。这包括自定义Tab的图标、文字颜色、背景等视觉元素,以及处理触摸事件,实现滑动切换。 5. ...

    TabHost两种实现方式

    这篇博客“TabHost两种实现方式”探讨了如何在Android应用中使用TabHost来构建多标签视图。下面我们将深入讨论这两种实现方式及其相关知识点。 首先,我们要理解TabHost的基本概念。TabHost是一个容器,它能容纳一...

    TabHost使用以及源码分析

    首先,我们需要在XML布局文件中声明一个TabHost,并设置其ID为`android:id/tabhost`,这是TabHost的标准ID。 ```xml &lt;TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android...

    TabHost学习总结

    在Android开发中,`TabHost`是一个非常重要的组件,它用于创建具有标签导航的应用界面。本文将深入探讨`TabHost`的学习总结,并结合标签“源码”和“工具”,介绍如何利用`TabHost`实现多标签功能以及查看相关源码...

    TabHost详解 博文对应源码(二)

    总结来说,`TabHost`是Android早期版本中创建多标签界面的标准方式。尽管现在有更多现代化的替代方案,但理解`TabHost`的工作原理对于Android开发者仍然非常重要,尤其是在处理旧项目或者理解历史代码时。通过阅读...

    tabhost activity slidingMenu仿新浪微博布局.zip

    在Android开发中,"tabhost activity slidingMenu仿新浪微博布局.zip"是一个典型的移动应用界面设计案例,它结合了TabHost和SlidingMenu组件来模仿新浪微博的用户界面。这个小框架展示了如何构建一个具有底部标签...

    Android-TabHost.rar_android_android tabhost_tabhost_tabhost andr

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

    不用tabhost做导航栏

    在Android应用开发中,TabHost曾经是创建带有多个选项卡界面的标准组件,但随着平台的发展,Google逐渐不再推荐使用TabHost。本示例"不用tabhost做导航栏"旨在演示如何利用一个Activity结合ViewGroup来实现类似的...

    TabHost选项卡

    `TabHost`是Android早期版本中用来创建带有选项卡界面的标准方式,虽然在Android 5.0(API级别21)之后,`TabLayout`与`ViewPager`组合成为更推荐的实现方式,但了解`TabHost`的工作原理仍然是理解Android UI设计...

    tabhost+radiogroup

    在标题"tabhost+radiogroup"中,提到的是一个不使用标准`TabWidget`,而是利用`RadioGroup`来模拟标签页效果的创新性做法。这种设计思路可以为应用程序提供更加灵活和自定义化的界面布局。 `TabHost` 是Android系统...

    使用 RadioGroup和TabHost 实现底部菜单栏

    在Android应用开发中,创建一个用户友好的界面是至关重要的,底部菜单栏是许多应用程序的标准设计元素,它提供了一种方便的方式让用户在多个主要功能之间切换。本教程将详细介绍如何利用`RadioGroup`和`TabHost`来...

    tab效果之Tabhost

    开发者可以通过自定义View或使用第三方库来改进其表现和功能,使其更符合现代Android应用的设计标准。 总之,TabHost是Android早期版本中实现选项卡界面的重要工具,尽管已被新的组件取代,但在特定场景下仍然具有...

    Android使用tabhost源码

    本篇文章将深入探讨如何使用TabHost源码在Android应用中实现多标签功能。 首先,TabHost是一个容器,它能够承载多个TabWidget(标签)和一个FrameLayout(内容区域)。当我们点击TabWidget中的不同标签时,...

    可横向拖动的TabHost

    在Android应用开发中,`TabHost`是一个非常重要的组件,它允许我们创建具有多个标签页的应用界面,每个标签页可以承载不同的活动(Activity)或视图。然而,标准的`TabHost`通常只支持垂直切换标签,即点击切换。本...

    android 之Tabhost部件详解

    总之,TabHost是Android早期版本中创建多标签界面的标准方式,虽然现在有了更多灵活的选择,但掌握TabHost仍然有助于开发者全面理解Android界面设计的各个方面。通过阅读和实践“android 之Tabhost部件详解”,我们...

    Fragment实现底部tabhost的效果

    这是TabHost的标准约定。 - 在TabHost中包含一个FrameLayout,用于显示被选中的Fragment。 2. **初始化TabHost** - 在Activity的onCreate()方法中获取TabHost实例,然后调用TabHost.setup()方法初始化它。 - ...

    封装的一个tabhost框架.zip

    通过解压并查看源码,我们可以学习到作者是如何优化和扩展标准TabHost功能的,这对于深入理解Android界面开发和组件交互有极大帮助。 此外,这个框架可能还提供了良好的封装,使得开发者只需关注业务逻辑,而无需...

    动态TabHost效果

    在Android开发中,`TabHost`是一个非常重要的组件,它用于创建...记住,良好的用户体验是衡量一个应用成功与否的重要标准之一,因此在实现动态TabHost时,要确保其操作流畅,响应快速,同时兼顾视觉效果和功能实用性。

    仿新浪微博底部TabHost简单实现

    在Android应用开发中,TabHost是一个非常常见的组件,它用于创建多标签的界面,使得用户可以在不同的功能之间轻松切换。本教程将详细讲解如何使用TabHost来实现类似新浪微博底部导航栏的效果。 首先,我们需要理解...

    Android最火的Framment实现tabhost效果

    1. 在XML布局文件中,创建一个FragmentTabHost,并设置其id为"@android:id/tabhost",这是TabHost的标准ID。 ```xml android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_...

Global site tag (gtag.js) - Google Analytics