http://blog.csdn.net/coolwxb/article/details/44077881
ListView 添加长度样式不固定的分割线
ListView可通过配置
android:dividerline
android:dividerHeight
来实现分割listview中item的效果,如图:
如果想跟上图一样实现这种有设计的分割线样式的时候可以使用下面的方法,这个方法也是参照StackOverFlow解决方案上的方法来实现.
创建分割线的布局文件:
list_item_divider.xml
<code class="language-xml hljs has-numbering"><span class="hljs-pi"><?xml version="1.0" encoding="UTF-8"?></span> <span class="hljs-tag"><<span class="hljs-title">inset</span> <span class="hljs-attribute">xmlns:android</span>=<span class="hljs-value">"http://schemas.android.com/apk/res/android"</span> <span class="hljs-attribute">android:insetLeft</span>=<span class="hljs-value">"50dp"</span> <span class="hljs-attribute">android:drawable</span>=<span class="hljs-value">"@color/grayd"</span>></span> <span class="hljs-tag"></<span class="hljs-title">inset</span>></span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>
在listview的divider属性中引用这个布局
<code class="language-xml hljs has-numbering"> <span class="hljs-tag"><<span class="hljs-title">ListView </span> <span class="hljs-attribute">android:id</span>=<span class="hljs-value">"@+id/gv_map_list"</span> <span class="hljs-attribute">android:layout_width</span>=<span class="hljs-value">"match_parent"</span> <span class="hljs-attribute">android:layout_height</span>=<span class="hljs-value">"0dp"</span> <span class="hljs-attribute">android:layout_weight</span>=<span class="hljs-value">"1"</span> <span class="hljs-attribute">android:background</span>=<span class="hljs-value">"@color/background"</span> <span class="hljs-attribute">android:cacheColorHint</span>=<span class="hljs-value">"@android:color/transparent"</span> <span class="hljs-attribute">android:padding</span>=<span class="hljs-value">"@dimen/space_12"</span> <span class="hljs-attribute">android:scrollbars</span>=<span class="hljs-value">"none"</span> <span class="hljs-attribute">android:divider</span>=<span class="hljs-value">"@drawable/list_item_divider"</span> <span class="hljs-attribute">android:dividerHeight</span>=<span class="hljs-value">"@dimen/space_1"</span> /></span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li></ul>
这样就能实现图中的效果了。
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资源定义左边的嵌入位置。
<code class="language-xml hljs has-numbering"><span class="hljs-pi"><?xml version="1.0" encoding="utf-8"?></span> <span class="hljs-tag"><<span class="hljs-title">inset</span> <span class="hljs-attribute">xmlns:android</span>=<span class="hljs-value">"http://schemas.android.com/apk/res/android"</span> <span class="hljs-attribute">android:drawable</span>=<span class="hljs-value">"@drawable/background"</span> <span class="hljs-attribute">android:insetTop</span>=<span class="hljs-value">"10dp"</span> <span class="hljs-attribute">android:insetLeft</span>=<span class="hljs-value">"10dp"</span>/></span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>
参考:
http://stackoverflow.com/questions/14054364/how-to-assign-padding-to-listview-item-divider-line
http://blog.csdn.net/think_soft/article/details/7492067