本来以为这是一个非常简单的入门问题。(好吧,我承认我确实基础学的并不扎实)。但是今天的亲身实践让我见识到了这个关于RadioButton选择器的坑。恩……开始……
原本的选择器代码是这样的。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/realred"></item>
<item android:state_checked="false" android:color="@color/gray"></item>
</selector>
看起来好像没什么问题,但是一运行就崩了。选择器写错了?在字体上试试……
android:textColor="@drawable/select_radio_button"
结果在字体颜色上也是正常显示,没发现什么异常。
莫非是RedioButton不能设置背景为颜色?于是我在RadioButton里面加了这一句:
android:background="@color/colorPrimary"
结果正常显示……
恩……还是不知道为嘛……这么一个小问题都把我搞的怪纠结。最后无奈,只好老老实实写了两个shape。然后选择器改成了这个样子:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radiobutton_background_unchecked"
android:state_checked="false" />
<item android:drawable="@drawable/radiobutton_background_checked"
android:state_checked="true" />
</selector>
shape代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充 -->
<solid android:color="@color/realred" />
</shape>
结果终于正常显示。问题暂时解决。
恩……反正总结一下,就是放在背景上用颜色的选择器就出现了问题。这是为什么呢?等做完这个项目之后定要研究一下。