现在的位置: 首页 > 综合 > 正文

android ListView 拖动时出现白色色块以及分割线设置

2018年02月10日 ⁄ 综合 ⁄ 共 937字 ⁄ 字号 评论关闭

关于白色色块

        近日,在优化音乐播放器界面的时候,发现只要拖动歌曲列表(ListView + adapter实现),整个列表就会变成白色。有图有真相,上图!

图-1 没有拖动的情况下,可以正常显示。



图-2 拖动列表,整个listview 变成白色

原因:拖动列表时,列表的view将发生重绘,用的依旧是系统默认的透明色。默认情况下,这种透明色是可见的。(啰嗦一句,默认色与程序选择的主题有关,比如说,选择了白色的主题,那么默认色就是白色,反之亦然)

解决方法

第一种:在xml 文件中,给listView组件加上一个属性:

android:cacheColorHint="#00000000"

因为布局可以说是配置文件,所以推荐使用这种静态配置方式。另外,在白色主题的前提下,如果颜色值的后六位改成其他非零数字,那么将出现黑色色块。


第二种:调用listView的setCacheColorHint(0),动态将颜色值设置为0 。


listView分割线设置

listView默认的分割线样式也不能说不好看,只是乍一看,觉得满屏幕的分割线,感觉好不美观。Ok,对listView进行开刀!先上图,对于listView显示的每一个对象,给它设置一个布局。(为了让更直观,给布局加上了背景色),最终显示的效果如下

每一个对象的最终样式:


运行时,实际的效果(因为有图片,所以去掉了背景色),此时可以看到系统默认的分割线。


修改后的效果:因为配色以及分隔线图片选的不是很好,所以看得不是很清楚,最明显的效果是分割线没有触到屏幕边缘,隐隐有点渐变效果(美工始终是硬伤%>_<%,求专业美工)


修改步骤:

在listView中,加上android:divider属性,将里面的图片资源指向某张图片。这样,系统默认的分割线就会被取代。另外如果不想要分割线,可以这样修改:android:divider="@null"。


android:divider="@drawable/divider_line"



预览下效果,大功告成!



附:用到的分割线图片


关于属性的详细设置,参考文档:http://wenku.baidu.com/view/0544dbd86f1aff00bed51e5c.html

THE END》

2013.10.16


抱歉!评论已关闭.