首页 > 代码库 > listview cacheColorHint,listSelector属性

listview cacheColorHint,listSelector属性

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”

 
 
 
 

listview cacheColorHint,listSelector属性