自定义:RadioGroup

本文详细介绍了Android应用中一种特定的主界面布局设计方案,利用TabHost结合RadioGroup实现导航栏的功能,通过设置RadioButton的宽度为0dp使它们能平均分配空间,并通过XML选择器设置不同状态下的样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图:
直播画面
点播画面

主界面:

<?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:background="@color/white"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >


        <LinearLayout android:layout_width="fill_parent"
                android:layout_height="50dp"
                android:background="@color/gren_nav"
                android:orientation="vertical">

            <RadioGroup
                android:id="@+id/main_radio"
                android:layout_width="180dip"
                android:layout_height="50dp"
                android:background="@color/gren_nav"
                android:gravity="center"
                android:layout_gravity="center_horizontal"
                android:orientation="horizontal" >

                <RadioButton
                    android:id="@+id/radio_livePlay"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:background="@drawable/radio_check"
                    android:button="@null"
                    android:checked="true"
                    android:gravity="center"
                    android:textStyle="bold"
                    android:text="直播"
                    android:textColor="@drawable/radio_text_check" />





                <RadioButton
                    android:id="@+id/radio_clickPlay"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:background="@drawable/radio_check"
                    android:button="@null"
                    android:gravity="center"
                    android:textStyle="bold"
                    android:text="点播"
                    android:textColor="@drawable/radio_text_check" />
            </RadioGroup>
           </LinearLayout>

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

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

</TabHost>

上面,RadioButton中,
android:layout_width=”0dp”
设0表示:radio_livePlay与radio_clickPlay才可以平分宽度

被选中的radioButton的背景图片selected.png
drawable中:radio_check.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@drawable/selected" android:state_checked="true"/>

</selector>

设置字体颜色
drawable中:radio_text_check.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:state_checked="false" android:color="@android:color/white"/>
    <item android:state_checked="true" android:color="@android:color/black"/>


</selector>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值