listview中的item滚动变黑的原因和解决办法
这是什么原因导致的呢?起初我以为是因为我把背景设置成了白色,然后产生色差导致的,后来查阅资料发现,其实这个要从Listview的效果说起,默认的ListItem背景是透明的,而ListView的背景是固定不变的,所以在滚动条滚动的过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,所以android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint的属性,在黑色主题下默认的颜色值是#191919,所以就出现了刚才的画面,有一半是黑色的,那怎么办呢?
如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了,当然为了美化是要牺牲一些效率的。
android:fadingEdge="none" android:scrollingCache="false"
android:layout_height="fill_parent" android:divider="@null"
android:cacheColorHint="#00000000" android:fadeScrollbars="true" />
其中常用的属性值都有:
fadingEdge 上下边距阴影
scrollingCache 滚动缓存
divider分割线
fadeScrollbars滚动条自动隐藏
2item分割线粗细不同的问题。
我们在listview中展示每一个item的时候,有时会遇到每一个列表项之间的分割线粗细不同的原因,明明默认,没有设置任何分割线,可是怎么会一条细一条粗,一条细一条粗的问题呢?
在xml的listview布局中:android:dividerHeight="1px"(默认设置) 但有的行一个像素有的行两个像素
代码中去掉各item之间的黑色线条方法
listView.setDivider(null) ;
解决办法一:
将其设为:
android:divier="#ffdddddd" 灰色(或其他颜色)
android:dividerHeight="2px" 统一为2像素
解决办法二:
在manifes配置文件中加入<uses-sdk android:targetSdkVersion="">的配置,
如:<uses-sdk android:targetSdkVersion="4" />
当发现解决办法二的时候,我明白了,或许是模拟器或安卓的版本的问题,于是我把应用程序(2.1)拷贝到真机(2.3.3)安装上,还是默认的listview,不存在线条粗细不一的问题。于是,我就新创建了一个2.3的模拟器,调试安装上应用程序,显示效果和手机一样,所以到现在得出了结论,是2.1版本模拟器显示问题。
(2.1模拟器显示的问题)
(2.3的显示效果,线条默认成了灰色,但是仔细看还是有像素粗细的问题,继续研究,如有结论,继续补充上来)。