<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <corners android:bottomLeftRadius="16dp" android:bottomRightRadius="16dp" android:topLeftRadius="16dp" android:topRightRadius="16dp"></corners> <stroke android:width="1dp" android:color="#999999"></stroke> <solid android:color="#fefefe"></solid> </shape> </item> <item android:state_selected="true"> <shape android:shape="rectangle"> <corners android:bottomLeftRadius="17dp" android:bottomRightRadius="17dp" android:topLeftRadius="17dp" android:topRightRadius="17dp"></corners> <stroke android:width="1dp" android:color="#999999"></stroke> <solid android:color="#cccccc"></solid> </shape> </item> <item android:state_pressed="true"> <shape android:shape="rectangle"> <corners android:bottomLeftRadius="17dp" android:bottomRightRadius="17dp" android:topLeftRadius="17dp" android:topRightRadius="17dp"></corners> <stroke android:width="1dp" android:color="#999999"></stroke> <solid android:color="#cccccc"></solid> </shape> </item> </selector>//上面的selector是不能生效的!!!!//正确的案例如下:【原因是顺序问题】<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true"> <shape android:shape="rectangle"> <corners android:bottomLeftRadius="17dp" android:bottomRightRadius="17dp" android:topLeftRadius="17dp" android:topRightRadius="17dp"></corners> <stroke android:width="1dp" android:color="#999999"></stroke> <solid android:color="#cccccc"></solid> </shape> </item> <item android:state_pressed="true"> <shape android:shape="rectangle"> <corners android:bottomLeftRadius="17dp" android:bottomRightRadius="17dp" android:topLeftRadius="17dp" android:topRightRadius="17dp"></corners> <stroke android:width="1dp" android:color="#999999"></stroke> <solid android:color="#cccccc"></solid> </shape> </item> //位置应该放在最底部,保证上面的效果不被覆盖 <item> <shape android:shape="rectangle"> <corners android:bottomLeftRadius="16dp" android:bottomRightRadius="16dp" android:topLeftRadius="16dp" android:topRightRadius="16dp"></corners> <stroke android:width="1dp" android:color="#999999"></stroke> <solid android:color="#fefefe"></solid> </shape> </item> </selector>
Android selector shape 无效问题
最新推荐文章于 2022-04-11 09:59:49 发布
本文介绍了一个关于Android中Selector配置的问题实例。通过对比错误与正确的配置方式,解释了当多个状态同时满足时,Selector中Item的顺序对最终效果的影响。文章强调了默认状态的配置应当放在所有特定状态配置之后,以确保其不会被覆盖。
1340

被折叠的 条评论
为什么被折叠?



