0%

Android 给ListView设置分割线与边界的距离

在Xml文件中ListView可通过配置

1
2
android:dividerline
android:dividerHeight

如果divider需要缩进,可以在drawable新建一个list_divider.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="@color/list_background" />
</shape>
</item>
<item android:left="10dp"
android:right="10dp">
<shape android:shape="rectangle" >
<solid android:color="@color/divider_color"/>
</shape>
</item>
</layer-list>

然后在ListView中配置

1
2
3
4
5
<ListView
android:dividerHeight="@dimen/list_divider_height"
android:divider="@drawable/list_divider"
...
/>

另外list_divider.xml还有另一种写法:

1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="10dp"
android:insetRight="10dp"
android:drawable="@color/divider_color">
</inset>

ListView中的配置方法与之前相同

另外inset属性定义嵌入的可绘制资源。它必须是根元素。

属性(ATTRIBUTES):

xmlns:android: 字符串值,必须的。它定义了XML的命名空间,必须是:

android:drawable: 要绘制的资源,必须的,它指向一个要嵌入的可绘制资源。

android:insetTop: 尺寸值。用尺寸值或Dimension资源定义顶部的嵌入位置。

android:insetRight: 尺寸值。用尺寸值或Dimension资源定义右边的嵌入位置。

android:insetBottom: 尺寸值。用尺寸值或Dimension资源定义底部的嵌入位置。

android:insetLeft: 尺寸值。用尺寸值或Dimension资源定义左边的嵌入位置。