如何设置 ListView 分隔线的宽度?

Posted

技术标签:

【中文标题】如何设置 ListView 分隔线的宽度?【英文标题】:How to set width of ListView divider? 【发布时间】:2011-12-22 01:02:55 【问题描述】:

如何设置我的自定义 ListView 分隔线的宽度,使其小于我的行宽?

【问题讨论】:

【参考方案1】:

现在,RecyclerView 通常比使用ListView 更受欢迎。请参阅this Q&A 了解如何在RecyclerView 中设置分隔线的宽度。

使用<inset>

drawable/list_divider.xml

<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="10dp"
    android:insetRight="10dp" >

    <shape android:shape="rectangle" >
        <solid android:color="@color/list_divider_color" />
    </shape>

</inset>

在你的布局中:

<ListView
    android:id="@+id/listView1"
    android:layout_
    android:layout_
    android:cacheColorHint="#00000000"
    android:divider="@drawable/list_divider"
    android:dividerHeight="1dp" >
</ListView>

来源:

Listview divider margin How to assign padding to Listview item divider line

【讨论】:

我试过这个。但它将我的自定义分隔线覆盖在默认分隔线上。知道为什么吗? @Suragch 很抱歉离题,但我在文档中没有发现任何关于 ListView 弃用的提及。我理解您在这些话背后的想法,但我认为这可能会使某些人感到困惑。不过,很好的答案。 优雅,简单,能胜任。谢谢【参考方案2】:

制作一个左右有透明像素的 9 补丁 png。例如,一个 53x4 .9.png 的两边都有 25 个透明像素(+ 像素到 9patch 它)会拉伸 1 个像素,因此它的两边都有 25 个像素。

【讨论】:

【参考方案3】:

如果你不想打9补丁,那么你可以插入

<View android:layout_ android:layout_ android:layout_marginTop="4dp" android:background="#33B5E5" />

在您的 list_item 的 xml 代码中。它会创建一条蓝线,您可以轻松控制这条线的宽度。 要使此操作成功,您必须禁用 listview 的分隔符。这是here

【讨论】:

width 留在match_parent 并设置左边距或右边距。【参考方案4】:

你应该可以打电话了

mListView.setDivider(Drawable d);

并传递一个可绘制对象,您可以将其包含在您的 res/drawable 文件夹中。如果你想让它几乎一直穿过你可以只制作一个 9 补丁,其中包含一条水平线,在左侧和右侧有你想要的透明度。并将其设置为拉伸线条的中间部分。

【讨论】:

以上是关于如何设置 ListView 分隔线的宽度?的主要内容,如果未能解决你的问题,请参考以下文章

android listview每条记录下都有一条分隔线,如何去掉分割线

如何在listview中使用jquery动态显示列表分隔符?

VB_listview控件如何设置各列的默认宽度?

Flutter:如何将 StreamBuilder 与 ListView.separated 一起使用

VB_listview控件如何设置各列的默认宽度?

在 Android 中,如何设置 ListView 项的高度和宽度?