很多android应用都会用到TabHost组件。有人用系统自带的,有人自定义。
我个人比较懒,同时比较喜欢sping的“轮子理论”,有轮子就不再造轮子。所以我是使用系统自带的TabHost
关于TabHost,我是随着项目的开发,新的需求的不断提出,而不断认识的。
下面进入正题,讲一下我对TabHost的功能需求。
1.每个选项卡对应一个Activity
2.选项卡标签样式自定义
第一个功能在setContent中设定(参数为Intent对象)
第二个功能在setIndicator中设定(参数为View对象)
具体代码如下:
Intent intent;
intent = new Intent(this, TabActivity1.class);
LayoutInflater mInflater = LayoutInflater.from(this);
View tab1Spec = mInflater.inflate(R.layout.tab1_spec, null);
tabHost.addTab(tabHost
.newTabSpec("tab1")
.setIndicator(tab1Spec)
.setContent(intent));
关于tab1_spec这个布局文件,肯定会涉及到选项卡背景颜色和文字颜色在选中和非选中状态的切换,这就需要在drawable文件夹下定义切换xml文件了。
上一下代码:
tab1_spec.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="1dp"
android:background="@drawable/tab_spec_background" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_centerHorizontal="true"
android:background="@drawable/tab1_spec_icon"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:layout_centerHorizontal="true"
android:text="@string/tab1" android:textColor="@drawable/tab_spec_text_color"
/>
</RelativeLayout>
</RelativeLayout>
tab_spec_background为选项卡背景,xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- 选项卡背景色-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/main_tab_frame_tabspec_background_current" android:state_selected="true"
/>
<!-- When not selected, use white
<item android:drawable="@drawable/main_tab_frame_product_category" />-->
</selector>
tab1_spec_icon为选项中的图标,其xml文件和tab_spec_background差不多
tab_spec_text_color为选项卡的文件颜色,xml文件和上面略有不同,需要将android:drawable属性换成android:color属性。
最后上一下源码(图片取自太平洋汽车android版),如果要转发,请注明来自
http://chenjinbo1983.iteye.com/admin/blogs/1326644
分享到:
相关推荐
总结来说,Android的嵌套TabHost是一种增强用户界面的方法,它允许开发者创建更复杂的导航结构,提供类似网页的多级菜单体验。通过理解和实践这个示例,开发者可以更好地掌握Android TabHost的使用,以及如何在实际...
总结起来,Android的TabHost是一个强大的工具,用于构建带有多个Tab的用户界面。通过设置TabWidget和FrameLayout,以及使用TabSpec来管理每个Tab的内容,我们可以轻松地创建出功能丰富的多视图应用。尽管现代Android...
总结来说,通过TabHost和RadioGroup的组合,开发者可以轻松创建一个底部导航栏,实现不同页面之间的切换,这在许多Android应用中是一种常见的设计模式。在具体实现时,还需要注意布局的设计、事件监听以及与数据模型...
在Android开发中,TabHost...总结,TabHost是构建多标签界面的关键组件,掌握其使用方法对于开发高效、用户友好的Android应用至关重要。结合源码理解和工具辅助,能更好地优化和调试TabHost相关的代码,提升应用质量。
总结来说,自定义Android的TabHost可以使应用的界面更加个性化,同时通过合理利用Fragment可以优化性能。在实际开发中,还可以根据需求调整选项卡的行为,比如添加滑动效果、动画等。通过掌握这些技巧,你可以在...
总结,这个示例项目展示了如何在Android应用中使用FragmentActivity、TabLayout和ViewPager来实现一个功能完善的多标签页界面,同时通过手势支持平滑的滑动切换。这种方法不仅适用于API 19及以上的设备,而且符合...
在Android开发中,`TabHost`和`TabWidget`是构建多标签界面的重要组件,用于创建具有选项卡式导航的应用程序。`TabHost`作为容器,管理着`TabWidget`和一个`FrameLayout`,而`TabWidget`则是展示选项卡的控件。 1. ...
总结来说,创建一个可滑动的TabHost,你需要结合使用TabLayout、ViewPager和PagerAdapter,通过设置Tab和监听器来实现动态的页面切换。这个过程涉及到Android的Fragment管理、UI布局设计以及事件处理等多个知识点,...
总结,TabHost在Android应用中提供了方便的多标签导航功能。通过设置TabSpec、初始化TabHost、添加Tab以及自定义样式,开发者可以轻松地构建出功能丰富的界面。理解TabHost的源码也有助于深入掌握其工作机制,从而更...
本篇将详细探讨如何在Mono for Android中实现底部导航菜单,特别是TabHost组件的使用。 一、TabHost概述 TabHost是Android系统中的一个关键组件,用于创建具有多个选项卡的界面,每个选项卡可以关联一个单独的...
总结来说,虽然现代Android开发倾向于使用Fragment替代ActivityGroup,但理解TabHost和ActivityGroup的历史以及它们的工作方式对于深入学习Android系统和历史演进非常重要。通过对"Android TabHost内嵌ActivityGroup...
总结起来,Android的最新`TabHost`提供了更现代且灵活的方式来创建选项卡式界面。通过`FragmentTabHost`和`Fragment`,开发者可以轻松地管理和更新每个选项卡的内容,同时保持良好的性能和用户体验。这使得在Android...
总结来说,Android的TabHost组件是构建多选项卡界面的重要工具。通过熟练掌握它的用法,开发者可以轻松地组织和展示应用程序的多个功能区域,提升用户体验。在实际项目中,可以根据需求调整TabHost的外观和行为,以...
总结,通过上述步骤,我们可以在Android应用底部实现TabHost的显示和功能。不过,随着Android版本的发展,TabLayout和ViewPager成为更推荐的实现底部导航栏的方式,它们提供了更丰富的定制选项和更好的用户体验。但...
总结来说,Android的TabHost组件提供了一种方便的方式来组织应用的多个功能模块,用户可以通过标签页轻松切换。在实际开发中,我们可以根据需求自定义标签页的样式、内容和交互,为用户提供更友好的界面体验。需要...
总结,TabHost是Android早期版本中实现多标签界面的主要方式,它结合了TabWidget和FrameLayout来展示和切换内容。然而,随着Android的不断发展,开发者现在有更多现代且灵活的组件可以选择,如FragmentTabHost、...
总结,`TabHost`是Android实现多标签页布局的一个有效工具。通过理解其工作原理和配置步骤,开发者可以轻松创建出功能丰富的标签页界面。不过,随着Android版本的更新,`TabHost`逐渐被`ViewPager`和`...
总结来说,Android的TabHost控件提供了一种方便的方式来构建多视图的应用界面。开发者可以通过设置标签和内容,以及自定义样式和事件处理,来实现丰富的用户体验。尽管在Android的现代设计中,TabLayout和ViewPager...
总结起来,这个项目涉及了Android的TabHost组件、日期处理和界面交互等多个知识点,开发者通过TabHost实现了四个独立的界面,每个界面都具备日期显示和操作的功能。在实际的开发过程中,需要熟练掌握Android UI设计...