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

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

2013-10-16 12:01 253 查看
关于白色色块
近日,在优化音乐播放器界面的时候,发现只要拖动歌曲列表(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: