ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉,
原因是,滚动时,列表里面的view重绘时,用的依旧是系统默认的透明色,颜色值为#FF191919,
要改变这种情况,只需要调用listView的setCacheColorHint(0),颜色值设置为0
或者xml文件中listView的属性 Android:cacheColorHint="#00000000"即可,
滚动时,重绘View的时候就不会有背景颜色。
android:listSelector="#00000000"
进行上面的设置之后,ListView点击item时就没有任何现象了,
android:listSelector="@null"不可以实现。
自定义listview的时候,当你不使用android:cacheColorHint=“#00000000”会出现下面选中一个空间黑色底色的情况,破坏整体美观度:
当你不使用android:listSelector属性,默认会显示选中的item为橙黄底色,有时候我们需要去掉这种效果:
listview 拖动 背景图 显隐
<!-- 最后一条item所在的位置会闪烁 --> <ListView android:id="@+id/recommand_app_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/recommands_list_view_header_divider" android:fadingEdge="none" android:scrollbars="none" android:scrollingCache="true" > </ListView>
<!--修复问题: 最后一条item所在的位置会闪烁 --> <ListView android:id="@+id/recommand_app_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/recommands_list_view_header_divider" android:background="@drawable/ic_content_bg_repeat" android:divider="@drawable/ic_list_divider_repeat" android:dividerHeight="1dp" android:fadingEdge="none" android:persistentDrawingCache="none" android:scrollbars="none" android:scrollingCache="false" android:smoothScrollbar="true" > </ListView>
ListView是一个经常要用到的android控件,现总结遇到过的一些美化的小细节。
1、listview在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来
解决:在XML中加入
android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″
2、listview的上边和下边有黑色的阴影
解决: android:fadingEdge=”none”
3、修改listview的Item默认选择时的黄色背景
解决:在java文件中使用listview.setSelector()方法,或使用如下代码
android:listSelector="#00000000"//这样写是透明的,也可加入Drawable图片
4、lsitview的每一项之间需要设置一个图片做为间隔
解决: android:divider=”@drawable/list_driver”