在点击GridView或是ListView的选项时常会遇到需要更改选中或是点击的Item的背景颜色,字体颜色的需求,最常用的方法就是通过编写Selector的方法。
- 按压下去背景变成红色,放开恢复默认灰色
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//默认灰色
<item android:drawable="@drawable/bg_rectangle_solid_grey_f5f7fb_corner50"/>
//按下去背景变红色
<item android:state_pressed="true" android:drawable="@drawable/bg_rectangle_solid_red_ff4414_corner50"/>
</selector>
- 按压下去字体变成白色,放开恢复默认黑色
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/black_2D"/>
<item android:color="@color/white" android:state_pressed="true"/>
</selector>
小心了,上面有个坑!用上面的代码并不能达到预期的效果,点击选项时一点改变也没有。原因就在于编写的顺序。我们需要把上面默认的设置放在最下面,也就是如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/bg_rectangle_solid_red_ff4414_corner50"/>
//需要把这条默认情况下的设置放在最下面
<item android:drawable="@drawable/bg_rectangle_solid_grey_f5f7fb_corner50"/>
</selector>
切记!切记!找问题找了半天,还以为是焦点问题什么的呢!
欢迎关注我的微信公众号,和我一起学习一起成长!
AntDream
网友评论