ListView長さスタイルが固定されていない分割線を追加

5846 ワード

http://blog.csdn.net/coolwxb/article/details/44077881
ListView長さスタイルが固定されていない分割線を追加
ListViewは構成可能
android:dividerline
android:dividerHeight
図:ListView 添加长度样式不固定的分割线_第1张图片のように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/androidAndroid: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