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

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,就会出现变黑的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息