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可以自定义;
分享到:
相关推荐
4. 自定义TabLayout:在标准的TabHost中,Tab的样式和行为可能不能满足所有需求,因此开发者需要自定义TabLayout。这包括自定义Tab的图标、文字颜色、背景等视觉元素,以及处理触摸事件,实现滑动切换。 5. ...
这篇博客“TabHost两种实现方式”探讨了如何在Android应用中使用TabHost来构建多标签视图。下面我们将深入讨论这两种实现方式及其相关知识点。 首先,我们要理解TabHost的基本概念。TabHost是一个容器,它能容纳一...
首先,我们需要在XML布局文件中声明一个TabHost,并设置其ID为`android:id/tabhost`,这是TabHost的标准ID。 ```xml <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android...
在Android开发中,`TabHost`是一个非常重要的组件,它用于创建具有标签导航的应用界面。本文将深入探讨`TabHost`的学习总结,并结合标签“源码”和“工具”,介绍如何利用`TabHost`实现多标签功能以及查看相关源码...
总结来说,`TabHost`是Android早期版本中创建多标签界面的标准方式。尽管现在有更多现代化的替代方案,但理解`TabHost`的工作原理对于Android开发者仍然非常重要,尤其是在处理旧项目或者理解历史代码时。通过阅读...
在Android开发中,"tabhost activity slidingMenu仿新浪微博布局.zip"是一个典型的移动应用界面设计案例,它结合了TabHost和SlidingMenu组件来模仿新浪微博的用户界面。这个小框架展示了如何构建一个具有底部标签...
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的用户界面,使得用户可以在不同的功能之间轻松切换。TabHost与TabWidget和FrameLayout一起工作,为每个标签提供一个视图容器。本教程将深入...
在Android应用开发中,TabHost曾经是创建带有多个选项卡界面的标准组件,但随着平台的发展,Google逐渐不再推荐使用TabHost。本示例"不用tabhost做导航栏"旨在演示如何利用一个Activity结合ViewGroup来实现类似的...
`TabHost`是Android早期版本中用来创建带有选项卡界面的标准方式,虽然在Android 5.0(API级别21)之后,`TabLayout`与`ViewPager`组合成为更推荐的实现方式,但了解`TabHost`的工作原理仍然是理解Android UI设计...
在标题"tabhost+radiogroup"中,提到的是一个不使用标准`TabWidget`,而是利用`RadioGroup`来模拟标签页效果的创新性做法。这种设计思路可以为应用程序提供更加灵活和自定义化的界面布局。 `TabHost` 是Android系统...
在Android应用开发中,创建一个用户友好的界面是至关重要的,底部菜单栏是许多应用程序的标准设计元素,它提供了一种方便的方式让用户在多个主要功能之间切换。本教程将详细介绍如何利用`RadioGroup`和`TabHost`来...
开发者可以通过自定义View或使用第三方库来改进其表现和功能,使其更符合现代Android应用的设计标准。 总之,TabHost是Android早期版本中实现选项卡界面的重要工具,尽管已被新的组件取代,但在特定场景下仍然具有...
本篇文章将深入探讨如何使用TabHost源码在Android应用中实现多标签功能。 首先,TabHost是一个容器,它能够承载多个TabWidget(标签)和一个FrameLayout(内容区域)。当我们点击TabWidget中的不同标签时,...
在Android应用开发中,`TabHost`是一个非常重要的组件,它允许我们创建具有多个标签页的应用界面,每个标签页可以承载不同的活动(Activity)或视图。然而,标准的`TabHost`通常只支持垂直切换标签,即点击切换。本...
总之,TabHost是Android早期版本中创建多标签界面的标准方式,虽然现在有了更多灵活的选择,但掌握TabHost仍然有助于开发者全面理解Android界面设计的各个方面。通过阅读和实践“android 之Tabhost部件详解”,我们...
这是TabHost的标准约定。 - 在TabHost中包含一个FrameLayout,用于显示被选中的Fragment。 2. **初始化TabHost** - 在Activity的onCreate()方法中获取TabHost实例,然后调用TabHost.setup()方法初始化它。 - ...
通过解压并查看源码,我们可以学习到作者是如何优化和扩展标准TabHost功能的,这对于深入理解Android界面开发和组件交互有极大帮助。 此外,这个框架可能还提供了良好的封装,使得开发者只需关注业务逻辑,而无需...
在Android开发中,`TabHost`是一个非常重要的组件,它用于创建...记住,良好的用户体验是衡量一个应用成功与否的重要标准之一,因此在实现动态TabHost时,要确保其操作流畅,响应快速,同时兼顾视觉效果和功能实用性。
在Android应用开发中,TabHost是一个非常常见的组件,它用于创建多标签的界面,使得用户可以在不同的功能之间轻松切换。本教程将详细讲解如何使用TabHost来实现类似新浪微博底部导航栏的效果。 首先,我们需要理解...
1. 在XML布局文件中,创建一个FragmentTabHost,并设置其id为"@android:id/tabhost",这是TabHost的标准ID。 ```xml android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_...