【Android】ListView 点击拖动出现变黑和黑色边

在开发过程中,经常会使用到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,就会出现变黑的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值