Selector中android:constantSize属性

   今天之所以要提到这个属性,是因为开发中遇到的一个问题:

1. 先来看看ui图:

2. 为了实现这种很常见的效果,就使用了RadioButton,右边的图标就以drawableRight的形式添加进去:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_select" android:state_checked="true" />
    <item android:drawable="@android:color/transparent" android:state_checked="false" />
</selector>

最终的结果就是:右边的图标无论是选中还是未选中状态,都不会显示。

3. 百度到了android:constantSize这个属性:它的值是布尔型,false表示各种状态的大小不同,true则表示各种状态的大小一样,以最大的为准。

<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize="true"
    >
    <item android:drawable="@drawable/ic_select" android:state_checked="true" />
    <item android:drawable="@android:color/transparent" android:state_checked="false" />
</selector>

这里面我们就把这个属性设置为true,这样我们就能正常显示了