自定义单选按钮,状态列表可绘制不变

时间:2014-01-23 15:37:58

标签: android xml

我在Radio Buttons中有一组RadioGroup。我创建了一个StateList Drawable来指示每个按钮的状态。按钮操作正常,因为选择任何一个按钮都会启动听众等。但StateList Drawable无法正常工作。这是相关的东西:

使用按钮布局XML:

            <RadioButton
            android:id="@+id/score4"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_marginBottom="5dp"
            android:button="@drawable/score_button_selector" />

score_button_selector xml:

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

    <item android:state_checked="true" 
        android:drawable="@drawable/score_bg_2c_on" />
    <item android:state_checked="false" 
        android:drawable="@drawable/score_bg_2c_off"/>

</selector>

score_bg_2c_off是一个蓝色按钮:

enter image description here

score_bg_2c_on是一个绿色按钮:

enter image description here

蓝色按钮正确显示,但选择(按下/单击)时,应显示绿色按钮。正如我所说,按钮的操作很好,我得到了正确的价值等等 - 只是不是可绘制的改变。我尝试了state_selected而不是state_checked而没有更好的结果。

为什么这不符合我的意愿?

感谢。

以下是更多数据......我拿出android:button=并将drawable放在android:background=上。

            <RadioButton
            android:id="@+id/score4"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_marginBottom="5dp"
            android:background="@drawable/score_button_selector" />

这样就会显示默认的单选按钮。此按钮显示选择的时间(按钮内的蓝色),但背景永远不会改变。我知道它看到了score_button_selector drawable,因为它显示的按钮的蓝色背景只在drawable中定义。

2 个答案:

答案 0 :(得分:0)

试试这个

<RadioButton
        android:id="@+id/score4"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginBottom="5dp"
        android:button="@android:color/transparent"
        android:background="@drawable/score_button_selector" />

答案 1 :(得分:0)

没有什么好的项目干净无法修复!我认为也许大部分时间做 clean 作为最后的手段b-4发布一个问题是一个很好的协议。在追逐鬼魂3天后,它解决了这个问题。