Android之ListView 点击拖动出现变黑和黑色边
2013-03-10 12:07
246 查看
在开发过程中,经常会使用到ListView控件,然后自定义ListItem,与此同时,如果想给ListView添加图片背景或颜色可通过设置background属性实现,但是通过background属性设置背景后,会使点击ListView中的Item拖动出现变黑或黑色边。
要解决这个问题,此时,只需要在ListView控件中添加android:cacheColorHint="#00000000"即可,该语句是将item的背景设置为透明。
另外,如果要设置ListItem的颜色,而不是整个ListView,只要在自定义ListItem时直接设置颜色或背景既可,但是这样子同时会出现问题。虽然不会变黑,但会出现点击item不会有点击效果。
解决方案:
定义selector,即用XML分别设置按下和没按下的背景效果,样例如下
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/list_bg_focus"
/>
<item
android:state_focused="true"
android:drawable="@drawable/list_bg_focus"
/>
<item
android:state_pressed="false"
android:state_focused ="false"
android:drawable="@drawable/list_bg_normal"
/>
</selector>
在ListItem父控件中添加android:background="@drawable/list_item_selected"
ListItem背景默认是透明的,但是设置了ListView的背景后,每次拖动Item都要和ListView背景做运算,android系统为了优化这个过程,就使用了cacheColorHint属性,在黑色主题下默认的颜色值为#191919,就会出现变黑的情况。
要解决这个问题,此时,只需要在ListView控件中添加android:cacheColorHint="#00000000"即可,该语句是将item的背景设置为透明。
另外,如果要设置ListItem的颜色,而不是整个ListView,只要在自定义ListItem时直接设置颜色或背景既可,但是这样子同时会出现问题。虽然不会变黑,但会出现点击item不会有点击效果。
解决方案:
定义selector,即用XML分别设置按下和没按下的背景效果,样例如下
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/list_bg_focus"
/>
<item
android:state_focused="true"
android:drawable="@drawable/list_bg_focus"
/>
<item
android:state_pressed="false"
android:state_focused ="false"
android:drawable="@drawable/list_bg_normal"
/>
</selector>
在ListItem父控件中添加android:background="@drawable/list_item_selected"
ListItem背景默认是透明的,但是设置了ListView的背景后,每次拖动Item都要和ListView背景做运算,android系统为了优化这个过程,就使用了cacheColorHint属性,在黑色主题下默认的颜色值为#191919,就会出现变黑的情况。
相关文章推荐
- Android Listview 点击不变色 和 拖动 黑色问题
- android ListView控件滑动时出现黑色背景问题解法方案
- [Android]在ListView嵌套GridView中出现的点击事件处理以及gridview显示不全的问题
- Android 在ListView嵌套GridView中出现的点击事件冲突的处理以及gridview显示不全的问题
- 拖动ListView时背景出现黑色的解决办法!
- 解决:android Listview 拖动时背景为黑色问题
- Android ListView拖动时背景颜色会变成黑色 的解决办法
- 关于Android中xListView所出现的问题(点击后程序崩掉)
- Android ListView拖动时背景颜色会变成黑色 的解决办法
- 解决:android Listview 拖动时背景为黑色问题
- android中ListView拖动时背景黑色的问题
- Android ListView拖动时,背景颜色会变成黑色
- android Listview 拖动时背景为黑色问题
- android中ListView拖动时背景黑色的问题
- Android类似QQ左划出现删除按钮点击效果的ListView
- Android中滑动ListView的黑色背景和点击ListView某个item的橙黄色背景怎么去掉
- Android ListView拖动时,背景颜色会变成黑色
- android中ListView拖动时背景黑色的问题
- android ListView拖动时背景为黑色的解决方法
- android中ListView拖动时背景黑色的问题