背景交代
项目中有一个ListView,并且设置了onItemClickListener,当点击item的时候跳转到另一个Fragment,我仅仅在跳转前加了一个if判断之后,点击效果背景色居然变了!!!。我删除判断后,还是不行啊,可是项目急着上线,要想保持原来的点击效果背景色,只能使用selector了。
使用方法
在ListView布局中添加一个属性
android:listSelector
例子如下所示:
< ListViewandroid : id = "@+id/course_primary_list"android : layout_width = "match_parent"android : layout_height = "match_parent"android : layout_marginLeft = "10dp"android : layout_marginRight = "10dp"android : listSelector = "@drawable/course_list_selector"android : scrollbars = "none"android : divider = "@android:color/white"android : descendantFocusability = "beforeDescendants"android : dividerHeight = "1dp" / >
在res/drawable文件夹下新建course_list_selector.xml,根节点选择selector
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 这个是按下去的时候item显示背景色 -->; <item android:drawable="@color/course_list_item_pressed" android:state_pressed="true"></item> <!-- 这个是默认的item背景色,设为了透明 --> <item android:drawable="@android:color/transparent" android:state_pressed="false"></item> </selector>
其中上面引用的course_list_item_pressed颜色是用旧版本的APP,在ListView页面按住item,拍照截屏给美工取出来的颜色,就是这样。
查看原文:http://blog.xiongit.com/2015/10/listview_item_selector/