Как установить ширину разделителя ListView?

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

4 ответа

Решение

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

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

использование <inset>

рисуем /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>

введите описание изображения здесь

Источники:

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

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

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

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

mListView.setDivider (Drawable d);

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

Другие вопросы по тегам