简体   繁体   中英

How to set width of ListView divider?

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

A RecyclerView is generally preferred over using a ListView now. See this Q&A for how to set the width of the divider in a RecyclerView .

Use <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>

And in your layout:

<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>

在此输入图像描述

Sources:

Make a 9 patch png that has transparent pixels on the left and right. For example, a 53x4 .9.png that has 25 transparent pixels either side (+ pixels to 9patch it) would stretch the 1 pixel out so there is 25 pixels either side of it.

If you don't want to make 9 patch, then you can insert

<View android:layout_width="fill_parent" android:layout_height="1dp" android:layout_marginTop="4dp" android:background="#33B5E5" />

in your xml code of list_item. It creates a blue line and you can easily control the width of this line. To make this successful you would have to disable the divider of the listview . Which is given here

You should be able to call

mListView.setDivider(Drawable d);

And pass it a drawable that you can include in your res/drawable folders. If you want to make it go almost all the way across you could just make a 9 patch that contains a horizontal line with as much transparency on the left and right sides as you want. And set it to stretch the middle portion of the line.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM