自定义按钮drawable state_pressed和state_checked无法在CheckBox或RadioButton上运行 - Android

时间:2016-04-19 07:00:08

标签: java android checkbox drawable android-custom-view

我将自定义drawable设置为复选框按钮,
但只有android:state_checked="true"android:state_checked="false"似乎有用 其他州也没有工作。

我无法在按下状态下设置自定义绘图。

这是我正在使用的选择器:

<?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/radio_btn_selected" />
    <item android:state_checked="false" android:drawable="@drawable/radio_btn_normal" />
    <item android:state_pressed="true"  android:drawable="@drawable/radio_btn_pressed" />
    <item android:state_focused="true"  android:drawable="@drawable/radio_btn_pressed" />
    <item android:drawable="@drawable/radio_btn_normal"/> <!-- default -->
</selector>

这就是我将其设置为单选按钮的方式:

radioButton.setButtonDrawable(R.drawable.radio_btn_selectors);

1 个答案:

答案 0 :(得分:1)

由于您声明了各种状态的顺序,

android:state_pressed="true"android:state_focused="true"无法正常工作。每当你声明这样的drawable时,系统将从上到下进行,如果状态匹配,它不会查找其他状态并根据第一个选择应用更改。我认为android:state_checked="false"条件可能正在执行,而不是android:state_pressed="true"android:state_focused="true"。所以将android:state_checked="false"移到底部,然后尝试。