zoukankan      html  css  js  c++  java
  • ListView常用属性 (2012-01-12 17:20:27)

    比较特别的属性,通过设置这样的属性可以做出更加美观的列表

    stackFromBottom——
    设置该属性之后你最新条目就会显示你列表的最下面,
    值为true和false,如
    android:stackFromBottom="true"    

    transciptMode 属性——listview自动滑到最底部,用来显示最新条目。常用于ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。如:
     android:transcriptMode="alwaysScroll"  

    cacheColorHint属性——设置重绘时的缓存颜色。通常当你通过指定属性 android:background="@drawable/bg"来改变listView背景时,虽然背景变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色了。
    为什么呢?
    这个要从Listview的效果说起,默认的ListItem背景是透明的,而ListView的背景是固定不变的,所以在滚动条滚动的 过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,所以android系统为了优化这个过程用,就使用了一个叫做 android:cacheColorHint的属性,在黑色主题下默认的颜色值是#191919,所以就出现了刚才的画面,有一半是黑色的.
    避免这种情况,需要设置该属性:android:cacheColorHint指定为透明(#00000000)。
    如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色

    fadingEdge属性——上边和下边有黑色的阴影,android:fadingEdge="none" 设置后没有阴影了~

    scrollbars属性——隐藏listView的滚动条,android:scrollbars="none"与setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏。

    fadeScrollbars属性——android:fadeScrollbars="true"  配置ListView布局的时候,设置这个属性为true就可以实现滚动条的自动隐藏和显示。

    divider属性——设置行间距的分割线,分割线可以自定义颜色或图片。

     在ListView中我们使用属性   android:divider="#FF0000" 定义分隔符为红色,当然这里值可以指向一个drawable图片对象,如果使用了图片可能高度大于系统默认的像素,可以自己设置高度比如6个像素  android:dividerHeight="6px" ,Android开发网提示当然在Java中ListView也有相关方法可以设置。

    注意:如果设置android:divider=“#0000”属性后,样式没起作用,可以设置android:dividerHeight="非0值"。

    使用XML的时候可以使用android:divider属性为ListView设置分割线的样式(颜色或者资源文件),而在Java代码中默认提供的方法,listView.setDivider()
    却只支持Drawable资源文件,为此费了一点时间想解决方法,后来才发现其实很简单,android提供创建颜色资源文件的方法,于是只需要用
    listView.setDivider(new ColorDrawable(color))
    就可以解决问题了。
    如果设置完Divider没有效果的话,设置dividerHeight为非零。

    设置Item之间无间隙


    在xml文件中ListView控件中加入如下属性:
    android:divider="#00000000"
    或者在javaCode中如下定义:listView.setDividerHeight(0);

     


    listSelector属性——设置列表项选中或点击后的颜色,可以设置android:listSelector=“@null”,选中或点击列表项时无背景颜色变化。


    其它属性:

    属性名称

    描述

    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。

    用心的朋友应该会发现,listview中在设置了背景之后。会有些问题。

    1.、listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。

    问题1 有如下代码结解决 android:scrollingCache="false"

    2 、listview的上边和下边有黑色的阴影。

    问题2 用如下代码解决:android:fadingEdge="none" 

    3、lsitview的每一项之间需要设置一个图片做为间隔。

    问题3  用如下代码解决:  android:divider="@drawable/list_driver"  其中  @drawable/list_driver 是一个图片资源

  • 相关阅读:
    FJNU 1151 Fat Brother And Geometry(胖哥与几何)
    FJNU 1157 Fat Brother’s ruozhi magic(胖哥的弱智术)
    FJNU 1159 Fat Brother’s new way(胖哥的新姿势)
    HDU 3549 Flow Problem(最大流)
    HDU 1005 Number Sequence(数列)
    Tickets(基础DP)
    免费馅饼(基础DP)
    Super Jumping! Jumping! Jumping!(基础DP)
    Ignatius and the Princess IV(基础DP)
    Keywords Search(AC自动机)
  • 原文地址:https://www.cnblogs.com/likeju/p/4813605.html
Copyright © 2011-2022 走看看