很多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_TabWidget选项卡总结
最近在使用TabHost的时候遇到了一些奇怪的问题,在这里总结分享备忘一下。
此项目中总结了Android开发实战项目中常要用到的选项卡功能块
Tab与TabHost: 这就是Tab,而盛放Tab的容器就是TabHost 。 如何实现?? 每一个Tab还对应了一个布局,这个就有点好玩了。...import android.app.TabActivity; public class MyTab extends TabActivity {
超详尽的Tabhost使用详解,我是总结了好久
网上收集和自己总结的一些android使用资料,比较基础的知识,对全面了解一些知识很不错的 ...Android之从网络上获取图片视频.docx webview属性大全.docx 菜谱aip.docx 反编译Apk得到Java源代码总结.docx
android用户界面之TabHost教程实例汇总 android用户界面之Gallery教程实例汇总 android用户界面之按钮(Button)教程实例汇 android用户界面之ProgressBar教程实例汇总 android用户界面之WebView教程实例汇总 android...
选项卡(TabHost)方便的在窗口上设置多个标签页,每个标签页相当于获得一个与外部容器相同大小的组件摆放区域 通过这种方式,可以在一个容器中放置多组件。 创建4个java文件并对应layout 创建主java ,代码 ...
实现的方式有很多种 这里总结最常见的几种方式,以后再添加其他的。 viewPager + RadioGroup viewPager + FragmentTabHost viewpager +TabLayout viewPager+RadioGroup 感觉这是最简单的一个了,我也就不贴代码 说说...
FragmentTabHost使用总结 参考博客: http://blog.csdn.net/u010661782/article/details/52651900
下面写一个小例子简要地总结一下这个组合。 首先,看一下例子的最终运行效果图 这5个图标的效果其实都是一样的,只要做出来一个,以此类推就可以写出其他几个 第一步, FragmentTabHost+FrameLayout布局,先看...