Android Drawable 关于selector中state_pressed="true"的位置顺序
界面中有一个按钮使用这样的样式:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <corners android:radius="10dp"/> <solid android:color="#ff0099ff"/> </shape> </item> <item android:state_pressed="true"> <shape> <corners android:radius="5dp"/> <solid android:color="#ff063c91"/> </shape> </item> </selector>
会发现按钮被点击之后颜色未变,原来是press="true"的位置颠倒了,改为如下即可:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape> <corners android:radius="5dp"/> <solid android:color="#ff063c91"/> </shape> </item> <item> <shape> <corners android:radius="10dp"/> <solid android:color="#ff0099ff"/> </shape> </item> </selector>
也就是两个Item标签更换一下位置。
特殊情况应放在前面,也就是android:state_pressed="true",这一块应该放在前面。
本文出自 无忧之路 - 博客园