ListView中的Android虚线分隔符

时间:2013-11-24 13:42:02

标签: android listview divider

我想为listview绘制虚线分隔线。但我失败了。 StackOverflow中有一些类似的问题,但没有一个能解决我的问题。

以下是我创建虚线分隔符的步骤:

  • 创建list_divider.html

    <?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item>
        <shape android:shape="line">
            <stroke
                android:color="#ff0000"
                android:dashWidth="10px"
                android:dashGap="10px" />
        </shape>
    </item> </layer-list>
    
  • 我的布局包含列表视图

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@android:id/list"
        android:layout_gravity="center_horizontal"
        android:footerDividersEnabled="true"
        android:divider="@drawable/list_divider"
        android:dividerHeight="1px"/>
    

然后在UI编辑器的预览中,它就像它的工作原理:

enter image description here

  • 3.但不幸的是它在模拟器中不起作用:

enter image description here

任何人都可以给我一个提示吗?感谢。

P.S。:我使用图层列表的原因是我将来可能需要绘制2条线。

2 个答案:

答案 0 :(得分:5)

在此记录:https://code.google.com/p/android/issues/detail?id=29944

您有两个选择:

  • 关闭硬件加速:android:hardwareAccelerated="false"
  • 或:listView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)或xml android:layerType="software"

这让我太头疼了!

答案 1 :(得分:0)

您是否为可绘制的真实list_divider.html命名了?将其重命名为list_divider.xml。我很惊讶它在UI编辑器中有效。

可能产生影响的第二件事:对于分隔符的大小调整,使用dp而不是px作为单位。在Listview和divider xml中。你永远不知道10个像素是多少。