TabHost和RadioGroup

一.创建Tabhost

<?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:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >


        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="0.0dip"
            android:layout_weight="1.0" />


        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.0"
            android:visibility="gone" />


        <RadioGroup
            android:id="@+id/main_radiogroup"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="@drawable/tab_widget_background"
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:padding="2dip" >


            <RadioButton
                android:id="@+id/RadioButton0"
                style="@style/tab_item_background"
                android:drawableTop="@drawable/tab_icon1"
                android:text="主页" 
                android:textColor="#ffffff"/>


            <RadioButton
                android:id="@+id/RadioButton1"
                style="@style/tab_item_background"
                android:drawableTop="@drawable/tab_icon2"
                android:text="关于" 
                android:textColor="#ffffff"/>


            <RadioButton
                android:id="@+id/RadioButton2"
                style="@style/tab_item_background"
                android:drawableTop="@drawable/tab_icon3"
                android:text="设置" 
                android:textColor="#ffffff"/>


            <RadioButton
                android:id="@+id/RadioButton3"
                style="@style/tab_item_background"
                android:drawableTop="@drawable/tab_icon4"
                android:text="搜索" 
                android:textColor="#ffffff"/>


            <RadioButton
                android:id="@+id/RadioButton4"
                style="@style/tab_item_background"
                android:drawableTop="@drawable/tab_icon5"
                android:text="更多" 
                android:textColor="#ffffff"/>
        </RadioGroup>
    </LinearLayout>


</TabHost>

注意: 
     <1> 不管你是使用TabActivity 还是自定义TabHost,都要求以TabHost作为XML布局文件的根;
     <2> 将FrameLayout的属性值layout_weight设置为了1.0,这样就可以把TabWidget的组件从顶部挤了下来变成了底部菜单栏。
     <3> <TabWidger> 和<FrameLayout>的Id 必须使用系统id,分别为android:id/tabs 和 android:id/tabcontent 。因为系统会使用者两个id来初始化TabHost的两个实例变量(mTabWidget 和 mTabContent)。而且TabWidger必须要有
二.得到TabHost

1.如果是继承TabActivity 可以用tabHost = getTabHost()获得,但是TabHost的id必须为android:id="@android:id/tabhost".否则可以通过findviewbyid获得,若果没有继承TabActivity,在得到tabhost之后要加上tabHost.setup();因为TabActivity默认加了这句

2.得到TabHost之后要设置他的具体标签,TabSpec tabSpec = tabHost.newTabSpec("tag1");用来new一个tab,同时标记这个tab的tag,后面可以通过tabHost.setCurrentTabByTag("tag1"),来找到这个tab,并点击了这个tab.

3.有tab,我们还需要设置点击tab后的处理,用tab.setContent();可以是这个Activity下的一个组件,如setContent(R.id.tab1),也可以是一个intent,比如:setContent(new Intent(this, SubTab.class))

a.set组件,直接set我没有成功过,如果有成功的可以留言告诉我下.我是通过

  1. LayoutInflater.from(this).inflate(R.layout.tabs,  
  2.                 host.getTabContentView(), true);  

加载布局之后,再添加这个成功了.关于LayoutInflater的用法具体看这个,讲的很详细

b.set一个intent,这个intent没什么好说的,Intent intent = new Intent(this,other.class);指定你要加进来的activity.


4.setIndicator()用来标记这个tab的名字,可以是setIndicator("Clock"),也可以包含其他的属性,如图片:setIndicator( "商场",getResources().getDrawable(android.R.drawable.arrow_down_float))

tabs.addTab(spec)将这个tab添加如TabHost


5.调用这个tab,tabHost.setCurrentTabByTag("tag1")或者tabHost.setCurrentTab(0),调用对应的tab,然后就会执行3中的动作



关于TabHost知道的就是这些


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值