您的位置:首页 > 移动开发 > Android开发

【解决】GridView设置了 android:listSelector,选中某项背景色也会被选中

2013-12-19 16:40 127 查看
listSelector是listview的一个属性用来控制某一项被选中时的颜色,在4.0以后的系统中这个listSelector表现正常,在2.3和2.2(可能还有其他版本)中这个属性会变成点击某项修改整个listview的背景颜色。
为了解决这个问题,你不能在这个属性里面直接使用颜色,你需要创建一个在res/drawable/里面创建一个shape

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<solid android:color="@color/my_list_item_pressed_color" />
</shape>
然后再创建一个selector:

xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/list_item_pressed_bg" />
<item android:drawable="@android:color/transparent" />
</selector>
最后再把listSelector属性设置成这个selector:

<ListView
.....
android:listSelector="@drawable/list_item_selector" />
在2.2和2.3上都可以正常工作了。

参考http://stackoverflow.com/questions/10989225/android-listview-entire-list-getting-selected
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐