Как создать ListView с пунктирными разделителями строк в Android?
Мне удалось выяснить, как создать пользовательскую форму (с пунктирным штрихом), создав файл под названием dash.xml внутри папки /app/res/drawable/:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:color="#534b4b"
android:width="1dp"
android:dashGap="2dp"
android:dashWidth="1dp"
/>
<size
android:height="1dp"
/>
</shape>
Теперь я смущен тем, как применить эту форму к ListView. Я пробовал следующее, но не отображается разделитель:
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:divider="@drawable/dash"
android:dividerHeight="1dp"
/>
Wtf?
Ответы
Ответ 1
Вот мой, и он работает:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:color="#FF404040"
android:width="1dp"
android:dashGap="3dp"
android:dashWidth="1dp"
/>
<size
android:height="3dp"
/>
</shape>
Ответ 2
Вам также потребуется android:dividerHeight
. Формы являются переменными размерами, и теперь у вас есть делитель с нулевой высотой.
Ответ 3
- Определить layerType для отображения разделителя пунктирной линии не забудьте указать высоту разделителя.
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:divider="@drawable/dash"
android:dividerHeight="1dp"
android:layerType="software"/>