ITPub博客

首页 > Linux操作系统 > Linux操作系统 > listview中的item滚动变黑的原因和解决办法

listview中的item滚动变黑的原因和解决办法

原创 Linux操作系统 作者:hbm1985 时间:2012-12-05 09:30:38 0 删除 编辑
原文地址:http://blog.csdn.net/mad1989/article/details/7590122
在 Android中,ListView是最常用的一个控件,在做UI设计的时候,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背 很简单只需要准备一张图片然后指定属性android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现 背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。 

       这是什么原因导致的呢?起初我以为是因为我把背景设置成了白色,然后产生色差导致的,后来查阅资料发现,其实这个要从Listview的效果说起,默认 的ListItem背景是透明的,而ListView的背景是固定不变的,所以在滚动条滚动的过程中如果实时地去将当前每个Item的显示内容跟背景进行 混合运算,所以android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint的属性,在黑色主题下默认的颜色值 是#191919,所以就出现了刚才的画面,有一半是黑色的,那怎么办呢? 
       如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了,当然为了美化是要牺牲一些效率的。


在代码中设置:
listView.setCacheColorHint(Color.TRANSPARENT);

列出xml中listview用设置供大家参考:

android:fadingEdge="none" android:scrollingCache="false"

android:layout_height="fill_parent" android:divider="@null"

android:cacheColorHint="#00000000" android:fadeScrollbars="true" />

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18760228/viewspace-750553/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论