我想自定义背景。所以我在每个州的选择器中设计形状。但第一项执行。
这是我的代码:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:color="@android:color/black" >
<shape android:shape="rectangle" >
<solid android:color="#FFFFFF" />
<stroke
android:width="1dp"
android:color="#000000" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
<corners android:radius="10dp" />
</shape>
</item>
<item android:state_pressed="true" android:color="@android:color/black" >
<shape android:shape="rectangle" >
<solid android:color="#8faefd" />
<stroke
android:width="3dp"
android:color="#000000" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
<corners android:radius="10dp" />
</shape>
</item>
</selector>
答案 0 :(得分:1)
在每次状态更改期间,状态列表从上到下遍历 并且使用与当前状态匹配的第一个项目 选择不是基于“最佳匹配”,而只是第一项 符合国家最低标准。
所以你必须交换这两个项目。应该是那样的
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="@android:color/black" >
<shape android:shape="rectangle" >
<solid android:color="#8faefd" />
<stroke
android:width="3dp"
android:color="#000000" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
<corners android:radius="10dp" />
</shape>
</item>
<item android:color="@android:color/black" >
<shape android:shape="rectangle" >
<solid android:color="#FFFFFF" />
<stroke
android:width="1dp"
android:color="#000000" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
<corners android:radius="10dp" />
</shape>
</item>
</selector>