刚才在写一个selector选择器,如下:
<item android:drawable="@color/gray_line1" /> <item android:drawable="@color/tab_gray" android:state_pressed="true"/>
在手机上运行点击以后还是那个默认颜色,就是上面第一个颜色。点击以后可以弹出吐司,但就是背景颜色没变化,百思不得其解。后来试着在上面那个item添加state_pressed="false",如下,没想到可以了。
<item android:drawable="@color/gray_line1" android:state_pressed="false"/> <item android:drawable="@color/tab_gray" android:state_pressed="true"/>
在深入想一下,这个选择器是不是和顺序有关系,于是试着把最上面的那两个item颠倒一下,如下,结果同样也可以。
<item android:drawable="@color/tab_gray" android:state_pressed="true"/> <item android:drawable="@color/gray_line1" />
结果证明选择器与顺序有关,仔细想一下,按我最上面那一种写法,按顺序肯定是第一个item,当你状态改变后,系统还会选择第一个item,因为它同样符合条件,所以就看不到预想中的效果了。
今天是自己第一次写博客,写的肯定不是什么多深奥的知识点,只是自己在编程中的一点小发现,希望与大家分享一下。以后遇到问题解决问题后就应该写出来,一来自己肯定增加了印象,以后就会避免掉;二来说不定就可以帮到其他遇到同样问题的同行们。有点罗嗦了~~