列表视图:添加箭头作为分隔线

Listview: Add arrows as dividers

我想添加箭头作为列表视图项目之间的分隔符。我已经走得很远了,但是我的箭头被拉长了,而且没有设置分隔线宽度的选项。这是我到目前为止所拥有的... 在我的 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>

这是分隔线的样子:

这是我需要的:

ListView 分隔线被拉伸到 ListView 的全宽和您选择的高度 (<item name="android:dividerHeight">50dp</item>)。这就是为什么您的图像被拉伸的原因。

要避免它并保持size/ratio不变,有这样的方法:

  1. 使用 9 补丁可绘制对象。您可以使用默认的 Android 9-patch 编辑器将您的箭头转换为 9-patch(您仍然需要一些关于 9-patch 工作原理的基本知识)
  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>