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”

 
 
 
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。