web-dev-qa-db-ja.com

ListView仕切りの幅を設定するにはどうすればよいですか?

カスタムListView仕切りの幅を行幅よりも小さくするために、どのように設定できますか?

19
jul

左右に透明なピクセルを持つ9パッチpngを作成します。たとえば、両側に25個の透明ピクセル(+ピクセルから9パッチ)がある53x4 .9.pngは、1ピクセルを引き伸ばすため、両側に25ピクセルがあります。

13
FunkTheMonk

RecyclerViewは、現在ListViewを使用するよりも一般的に優先されます。 RecyclerViewで仕切りの幅を設定する方法については、 このQ&A を参照してください。

使用する <inset>

drawable/list_divider.xml

<inset xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:insetLeft="10dp"
    Android:insetRight="10dp" >

    <shape Android:shape="rectangle" >
        <solid Android:color="@color/list_divider_color" />
    </shape>

</inset>

そしてあなたのレイアウトでは:

<ListView
    Android:id="@+id/listView1"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:cacheColorHint="#00000000"
    Android:divider="@drawable/list_divider"
    Android:dividerHeight="1dp" >
</ListView>

enter image description here

出典:

57
Suragch

9パッチを作成したくない場合は、挿入できます

<View Android:layout_width="fill_parent" Android:layout_height="1dp" Android:layout_marginTop="4dp" Android:background="#33B5E5" />

list_itemのxmlコードで。青い線が作成され、この線の幅を簡単に制御できます。これを成功させるには、リストビューの仕切りを無効にする必要があります。与えられている ここ

3
eeishaan

あなたは呼び出すことができるはずです

mListView.setDivider(Drawable d);

そして、res/drawableフォルダーに含めることができるdrawableを渡します。ほぼ完全に行き渡らせたい場合は、左右に必要なだけ透明度のある水平線を含む9パッチを作成できます。そして、線の中央部分を伸ばすように設定します。

0
FoamyGuy