Android 如何设置ListView分隔符的宽度?

Android 如何设置ListView分隔符的宽度?,android,listview,width,divider,Android,Listview,Width,Divider,如何设置自定义ListView分隔符的宽度,使其小于行宽?制作一个左右两侧都有透明像素的9块png。例如,一个53x4.9.png的每一面都有25个透明像素(+像素到9个像素)会将1个像素向外延伸,因此每一面都有25个像素。您应该能够调用 并向其传递一个可绘制文件,您可以将其包含在res/drawable文件夹中。如果你想让它几乎穿过所有的道路,你可以制作一个9面片,其中包含一条水平线,左右两侧的透明度与你想要的一样高。并将其设置为拉伸线的中间部分 如果不想制作9个补丁,则可以插入 在列表项

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

制作一个左右两侧都有透明像素的9块png。例如,一个53x4.9.png的每一面都有25个透明像素(+像素到9个像素)会将1个像素向外延伸,因此每一面都有25个像素。

您应该能够调用


并向其传递一个可绘制文件,您可以将其包含在res/drawable文件夹中。如果你想让它几乎穿过所有的道路,你可以制作一个9面片,其中包含一条水平线,左右两侧的透明度与你想要的一样高。并将其设置为拉伸线的中间部分

如果不想制作9个补丁,则可以插入

在列表项的xml代码中。它会创建一条蓝线,您可以轻松控制这条线的宽度。 要使此操作成功,必须禁用listview的分隔符。与现在使用
列表视图相比,通常更倾向于使用
回收视图。有关如何在
RecyclerView
中设置分隔符宽度的信息,请参阅

使用
可绘制/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_width="match_parent"
    android:layout_height="match_parent"
    android:cacheColorHint="#00000000"
    android:divider="@drawable/list_divider"
    android:dividerHeight="1dp" >
</ListView>

来源:


我试过这个。但它将我的自定义分隔符覆盖在默认分隔符上。知道为什么吗?@Suragch很抱歉,我没有在文档中找到任何关于
ListView
弃用的内容。我理解你这些话背后的想法,但我想这可能会让人困惑。不过,答案很好。优雅,简单,能胜任。THKxlave
width
at
match_parent
并设置左侧或右侧边距。