ListView 添加长度样式不固定的分割线

ListView 添加长度样式不固定的分割线

ListView可通过配置

android:dividerline

android:dividerHeight

来实现分割listview中item的效果,如图:
ListView 添加长度样式不固定的分割线_第1张图片

如果想跟上图一样实现这种有设计的分割线样式的时候可以使用下面的方法,这个方法也是参照StackOverFlow解决方案上的方法来实现.

创建分割线的布局文件:

list_item_divider.xml


<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="50dp"
    android:drawable="@color/grayd">
inset>

在listview的divider属性中引用这个布局

 <ListView
            android:id="@+id/gv_map_list"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/background"
            android:cacheColorHint="@android:color/transparent"
            android:padding="@dimen/space_12"
            android:scrollbars="none"
            android:divider="@drawable/list_item_divider"
            android:dividerHeight="@dimen/space_1"
           />

这样就能实现图中的效果了。

PS:

inset属性
定义嵌入的可绘制资源。它必须是根元素。
属性(ATTRIBUTES):
xmlns:android
字符串值,必须的。它定义了XML的命名空间,必须是:http://schemas.android.com/apk/res/android
android:drawable
要绘制的资源,必须的,它指向一个要嵌入的可绘制资源。
android:insetTop
尺寸值。用尺寸值或Dimension资源定义顶部的嵌入位置。
android:insetRight
尺寸值。用尺寸值或Dimension资源定义右边的嵌入位置。
android:insetBottom
尺寸值。用尺寸值或Dimension资源定义底部的嵌入位置。
android:insetLeft
尺寸值。用尺寸值或Dimension资源定义左边的嵌入位置。


<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/background"
    android:insetTop="10dp"
    android:insetLeft="10dp"/>

参考:

http://stackoverflow.com/questions/14054364/how-to-assign-padding-to-listview-item-divider-line
http://blog.csdn.net/think_soft/article/details/7492067

你可能感兴趣的:(Android学习)