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>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐