自定义按钮可绘制 state_pressed 和 state_checked 不适用于 CheckBox 或 RadioButton - Android

Custom button drawable state_pressed and state_checked not working on CheckBox or RadioButton - Android

我正在为复选框按钮设置自定义可绘制对象,
但似乎只有 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);

android:state_pressed="true"android:state_focused="true" 由于您声明各种状态的顺序而不起作用。每当您像这样声明一个可绘制对象时,系统将从上到下进行,如果一个状态匹配,它不会寻找其他状态并根据第一个选择应用更改。我认为这里 android:state_checked="false" 条件可能正在执行,而不是 android:state_pressed="true"android:state_focused="true"。所以把android:state_checked="false"移到最下面再试试