ListView在布局中用得很广泛,下面是一些我个人认为比较常用的属性,通过设置这样的属性可以做出更加美观的列表。
先举个比较直观的例子吧:
这个ListView的样式为:
1 | < ListView xmlns:android = "http://schemas.android.com/apk/res/android" |
2 | xmlns:tools = "http://schemas.android.com/tools" |
3 | android:layout_width = "match_parent" |
4 | android:layout_height = "match_parent" |
5 | android:choiceMode = "singleChoice" |
6 | android:divider = "@color/image_bg_lightgreen" |
7 | android:dividerHeight = "1dp" |
8 | android:background = "@color/image_bg_green" |
9 | tools:context = "fragments.NavigationDrawerFragment" /> |
再比较完整地总结一些吧:
1 | java.lang.Object |
2 | android.view.View |
3 | android.view.ViewGroup |
4 | android.widget.AdapterView<T extends android.widget.Adapter> |
5 | android.widget.AbsListView |
6 | android.widget.ListView |
- android:stackFromBottom="true"。设置你做好的列表显示在列表的最下面,值为true和false。
- android:transcriptMode="alwaysScroll" 。设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。
- android:cacheColorHint 。如果只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了。
- android:divider="@drawable/list_driver" 。设置显示分割线图形,如果不想显示分割线则只要设置为android:divider="@drawable/@null" 就可以了,分割线可以自定义颜色、或图片.android:dividerHeight="6px"设置分割线高度像素。
- android:scrollbars="none" 。与setVerticalScrollBarEnabled(true);的效果一样,不活动的时候隐藏,活动的时候也隐藏。
- android:fadeScrollbars="true" 。配置ListView布局的时候,设置这个属性为true就可以实现滚动条的自动隐藏和显示。
- android:fadingEdge="none" 。设置上边和下边是否有黑色的阴影。
属性名称 | 描述 |
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。 |