1.如何修改ListView分割线

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="wrap_content"   android:layout_height="wrap_content">   <ListView   android:id="@+id/android:list"   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:divider="#FFCC00"   android:dividerHeight="4px"/>   </LinearLayout>  


android:divider="#FFCC00"
android:dividerHeight="4px"

这两句是关键。

在Android 中,ListView是最常用的一个控件,在做UI设计的时候,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。

这是为什么呢?

这个要从Listview的效果说起,默认的ListItem背景是透明的,而 ListView的背景是固定不变的,所以在滚动条滚动的过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,所以Android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint的属性,在黑色主题下默认的颜色值是#191919,所以就出现了刚才的画面,有一半是黑色的。那怎么办呢?如果你只是换背景的颜色的话,可以直接指定 android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定 为透明(#00000000)就可以了,当然为了美化是要牺牲一些效率的。最后就不会出现上面所说的你不想要的结果了!自定义ListView行间的分割线在Android平台中系统控件提供了灵活的自定义选项,所有基于ListView或者说AbsListView实现的Widget控件均可以通过下面的方法设置行间距的分割线,分割线可以自定义颜色、或图片。在ListView中我们使用属性android:divider="#FF0000" 定义分隔符为红色,当然这里值可以指向一个drawable图片对象,如果使用了图片可能高度大于系统默认的像素,可以自己设置高度比如6个像素 android:dividerHeight="6px" ,Android开发网提示当然在Java中ListView也有相关方法可以设置。


2.ListView其他效果

2.1.点击Item时无背景颜色变化

在xml文件中的ListView控件中加入如下属性:

android:listSelector="@drawable/timer_list_selector"  

在drawable中定义timer_list_selector的属性值

timer_list_selector.xml中定义如下:

<?xml version="1.0" encoding="utf-8"?>  <selector xmlns:android="http://schemas.android.com/apk/res/android">      <item android:state_selected="true" android:drawable="@android:color/transparent" />  </selector>  


在values文件夹下的colors.xml中定义transparent如下:

<color name="transparent">#50000000</color>

2.2.设置Item之间无间隙

在xml文件中ListView控件中加入如下属性:
android:divider="#00000000"
或者在javaCode中如下定义:

listView.setDividerHeight(0);


2.3.自定义的BaseAdapter中调用notifyDataSetChanged()方法会重新调用BaseAdapter的getView()方法。


3.ListView属性名称描述

android:choiceMode
规定此ListView所使用的选择模式。缺省状态下,list没有选择模式。
属性值必须设置为下列常量之一: none,值为0,表示无选择模式;
singleChoice,值为1,表示最多可以有一项被选中;
multipleChoice,值为2,表示可以多项被选中。
可参看全局属性资源符号choiceMode。
android:divider
规定List项目之间用某个图形或颜色来分隔。可以用"@[+] [package:]type:name"或者"?[package:]
[type:]name"(主题属性)的形式来指向某个已有资源;也可以用"#rgb","#argb","#rrggbb"或者"#aarrggbb"的格式来表示某个颜色。
可参看全局属性资源符号divider。
android:dividerHeight
分隔符的高度。若没有指明高度,则用此分隔符固有的高度。必须为带单位的浮点数,如"14.5sp"。可用的单位如px(pixel像素),dp(density-independent pixels 与密集度无关的像素), sp(scaled pixels based on preferred font size 基于字体大小的固定比例的像素), in (inches英寸), mm (millimeters毫米)。
可以用"@[package:]type:name"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。
可参看全局属性资源符号dividerHeight。
android:entries
引用一个将使用在此ListView里的数组。若数组是固定的,使用此属性将比在程序中写入更为简单。
必须以"@[+][package:]type:name"或者 "?[package:][type:]name"的形式来指向某个资源。
可参看全局属性资源符号entries。
android:footerDividersEnabled
设成flase时,此ListView将不会在页脚视图前画分隔符。此属性缺省值为true。
属性值必须设置为true或false。
可以用"@[package:]type:name
"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。
可参看全局属性资源符号footerDividersEnabled。
android:headerDividersEnabled
设成flase时,此ListView将不会在页眉视图后画分隔符。此属性缺省值为true。
属性值必须设置为true或false。
可以用"@[package:]type:name
"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。

可参看全局属性资源符号headerDividersEnabled。


4.ListView设置背景的问题

用心的朋友应该会发现,listview中在设置了背景之后。会有些问题。
1.ListView在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来
2.ListView的上边和下边有黑色的阴影。
3.ListView的每一项之间需要设置一个图片做为间隔。
针对以上问题 在listview的xml文件中设置一下语句。
问题1 有如下代码解决:android:scrollingCache="false"
问题2 用如下代码解决:android:fadingEdge="none"
问题3 用如下代码解决:android:divider="@drawable/list_driver" 其中
@drawable/list_driver 是一个图片资源

总体如下

<ListView    android:id="@+id/myListView01"    android:layout_width="fill_parent"    android:layout_height="287dip"    android:fadingEdge="none"      android:divider="@drawable/list_driver"    android:scrollingCache="false"    android:background="@drawable/list">    </ListView> 


1.去掉滑动到顶点和底边时的黑色阴影
android:fadingEdge="none"

2.去掉拖动时默认黑色底色
android:cacheColorHint=“#00000000”

3.去掉选中时的黄色底色

android:listSelector="#00000000"

原文地址:点击打开链接

更多相关文章

  1. Android黑科技动态加载(三)之动态加载资源
  2. Android逆向之旅---Android中的sharedUserId属性详解
  3. Android 属性动画(Property Animation) 源码解析 深入了解其内部实
  4. android textview xml 属性设置
  5. android的一些属性
  6. Android中的横竖屏、资源、国际化的使用
  7. android RelativeLayout属性和使用, 实现上面view叠加在下面view
  8. android RelativeLayout属性及demo
  9. RelativeLayout属性和使用, 实现上面view叠加在下面view之上的效

随机推荐

  1. Android(安卓)NDK开发指南(一) Application
  2. 代码流程分析二:Settings-蓝牙分析-搜索设
  3. android之DPAD上下左右四个键控制
  4. android下调用C,JNI调用
  5. android seekbar垂直滚动,滑块开始不在开
  6. Android(安卓)使用xml和java混合编写ui
  7. Android(安卓)APK反编译详解[转]
  8. Android(安卓)开源项目
  9. 使用setContentView的方式更换布局文件从
  10. Failed to fectch URl https://dl-ssl.go