android selector无效、不起作用问题解决

后树
2023-12-01

android selector 不起作用问题记录

最近开发出现了selector设置选中切换效果无效问题,在这里记录一下
需求:RadioButton选中状态变化后,背景和文字都会相应的改变
代码如下

XML布局文件

<RadioButton
      android:layout_width="match_parent"
      android:layout_height="50dp"
      android:background="@drawable/selector_btn"
      android:checked="true"
      android:text="测试"
      android:textColor="@drawable/selector_btn" />

selector文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#8C603B" android:drawable="@drawable/shape_cffffff_3" android:state_checked="false" />
    <item android:color="#F77F24" android:drawable="@drawable/shape_cff0000_3" android:state_checked="true" />
</selector>

代码很简单,就是RadioButton被选中后背景会使用shape_cff0000_3资源,文字会变成#F77F24颜色
预览没问题,真机运行后发现文字会变色,背景不变色
找了很久最终发现了问题,问题出现在Selector文件中,只需要把颜色替换成资源文件颜色即可

改动如下

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/c_8C603B" android:drawable="@drawable/shape_cffffff_3" android:state_checked="false" />
    <item android:color="@color/c_F77F24" android:drawable="@drawable/shape_cff0000_3" android:state_checked="true" />
</selector>
 类似资料: