代码之家  ›  专栏  ›  技术社区  ›  Salmaan

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

  •  0
  • Salmaan  · 技术社区  · 9 年前

    我正在将自定义绘图设置为复选框按钮,
    但只有 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 回复  |  直到 9 年前
        1
  •  1
  •   Ankit Aggarwal    9 年前

    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” 到底部,然后尝试。