android总结之TabHost

很多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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值