Listview: добавить стрелки в качестве разделителей - PullRequest
0 голосов
/ 13 декабря 2018

Я хотел бы добавить стрелки в качестве разделителей между элементами списка.Я получил довольно далеко, но моя стрелка растянута, и нет никакой возможности установить ширину делителя.Вот что у меня есть ... В моем файле styles.xml:

   <style name="dividedListStyle" parent="@android:style/Widget.ListView">
        <item name="android:cacheColorHint">@android:color/transparent</item>
        <item name="android:divider">@drawable/baseline_expand_more_black_24</item>
        <item name="android:dividerHeight">50dp</item>
    </style>

Затем в файле макета:

<ListView
    android:id="@+id/checklist"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/menu"
    android:layout_alignParentTop="true"
    style="@style/dividedListStyle">
</ListView>

Вот как выглядит разделитель: enter image description here

Это то, что мне нужно: enter image description here

1 Ответ

0 голосов
/ 13 декабря 2018

Разделитель ListView растягивается на полную ширину ListView и выбранной вами высоты (<item name="android:dividerHeight">50dp</item>).Вот почему ваше изображение растянуто.

Чтобы избежать этого и сохранить размер / соотношение без изменений, есть следующие способы:

  1. Использовать 9-патч.Вы можете использовать редактор Android 9-патчей по умолчанию, чтобы конвертировать вашу стрелку в 9-патч (вам все еще нужны базовые знания о том, как работает 9-патч)
  2. Сделайте вашу стрелку нарисованной частью рисованного или слоясписок выдаваемый:

<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center"
    android:src="@drawable/baseline_expand_more_black_24">
</bitmap>
...