关于selector"失效"的原因

在写Android布局的时候,selector是比较常用的。
但是有一天,我发现它失效了。神奇的车祸现场是这样的:

    <item android:drawable="@mipmap/home"/>
    <item android:drawable="@mipmap/home_pressed" android:state_selected="true"/>
    <item android:drawable="@mipmap/home_pressed" android:state_focused="true"/>
    <item android:drawable="@mipmap/home_pressed" android:state_pressed="true"/>

就是按下去一个效果的显示,以前也没注意过,这次突然就翻车啦?!!!

不知道各位有没有想过这里边 顺序有没有讲究?

解决方式:

<item android:drawable="@mipmap/home"/>

放到末置位,就像这样:

    <item android:drawable="@mipmap/home_pressed" android:state_selected="true"/>
    <item android:drawable="@mipmap/home_pressed" android:state_focused="true"/>
    <item android:drawable="@mipmap/home_pressed" android:state_pressed="true"/>
     <item android:drawable="@mipmap/home"/>

为啥呢?
其实 这里在做匹配的时候,不是严格匹配的。是从第一行的开始找,”合适”就停止了。所以,如果把

<item android:drawable="@mipmap/home"/>

放在首位,那每次匹配都停在第一行的 也就没有效果了。

推 荐 Android开发经验交流2群(537532956)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值