Как установить ширину разделителя ListView? - PullRequest
18 голосов
/ 04 ноября 2011

Как установить ширину моего пользовательского разделителя ListView, чтобы он был меньше ширины моей строки?

Ответы [ 4 ]

57 голосов
/ 15 августа 2014

A RecyclerView обычно предпочтительнее, чем использование ListView сейчас.См. этот вопрос и ответ , чтобы узнать, как установить ширину разделителя в RecyclerView.

Использование <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

Источники:

13 голосов
/ 04 ноября 2011

Создайте 9-патчовый PNG с прозрачными пикселями слева и справа. Например, 53x4 .9.png, который имеет 25 прозрачных пикселей с каждой стороны (+ пиксели к 9 исправлениям), растянет 1 пиксель, так что с каждой стороны будет 25 пикселей.

3 голосов
/ 13 июля 2013

Если вы не хотите делать 9 патчей, вы можете вставить

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

в ваш xml-код list_item.Это создает синюю линию, и вы можете легко контролировать ширину этой линии.Чтобы сделать это успешным, вы должны отключить разделитель списка.Который дается здесь

0 голосов
/ 04 ноября 2011

Вы должны быть в состоянии позвонить

mListView.setDivider (Drawable d);

И передайте это drawable, которое вы можете включить в свои папки res / drawable. Если вы хотите, чтобы он проходил почти по всей длине, вы можете просто сделать 9-патч, который содержит горизонтальную линию с столько прозрачности с левой и правой сторон, сколько вы хотите. И установите его, чтобы растянуть среднюю часть линии.

...