Listview:将箭头添加为分隔线

时间:2018-12-13 11:46:08

标签: android android-listview styling

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

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>