Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 列表视图分隔符边距_Android_Android Listview_Divider - Fatal编程技术网

Android 列表视图分隔符边距

Android 列表视图分隔符边距,android,android-listview,divider,Android,Android Listview,Divider,我正在尝试将边距设置为listview分隔符。 分隔线是一条虚线: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line" > <stroke android:dashGap="1dp" android:dashWidth="

我正在尝试将边距设置为
listview
分隔符。
分隔线是一条虚线:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line" >
    <stroke
        android:dashGap="1dp"
        android:dashWidth="1.5dp"
        android:width="1dp"
        android:color="#FF404040" />

    <size android:height="3dp" />

</shape>

但是我需要一个分隔符左右边距。 我还尝试为形状设置填充,但是
listview
忽略了填充

    <padding
        android:bottom="15dp"
        android:left="15dp"
        android:right="15dp"
        android:top="15dp" />



是否可以为
列表视图
分隔符设置边距-适配器的getView()中除外?

U可以使用渐变来获得左右边距,而不是笔划。。试试这个样品,它以黑色开头和结尾,中间是白色。。看起来你已经给了我利润

 <gradient android:startColor="#000000" android:centerColor="#ffffff"
    android:endColor="#000000" />

我认为这是不可能的:/尽管如果您在每个列表项的底部添加自己的drawable并删除ListView分隔符,您可以根据需要自定义它:)

创建文件夹res/drawable并创建新的xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#666666"></solid>

</shape>

…然后在您的列表项中使用该绘图

或者,一种非常快速而肮脏的方法是ofc创建一个在列表项底部有彩色背景的细线布局(或其他布局),以伪造一个可定制的ListView分隔符


不是正确的解决方案,只是一些固定的想法;)

您可以使用以下想法:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="@color/table_background"/>
    </shape>
</item>
<item android:left="2dp" android:right="2dp">
    ... your shape here ...
</item> </layer-list>

... 你的形状在这里。。。
它对我有用。希望能有所帮助。

插页是最好的选择

<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="15dp"
    android:insetRight="15dp" >

    <shape
        android:shape="line" >
        <stroke
            android:dashGap="1dp"
            android:dashWidth="1.5dp"
            android:width="1dp"
            android:color="#FF404040" />

            <size android:height="3dp" />

    </shape>

</inset>

使用“插入”

(list_divider.xml)


在您的列表视图中添加如下内容

<ListView
    android:dividerHeight="2dp"
    android:divider="@drawable/list_divider"
    ...
/>


您可以根据需要设置插入值…

这是一个很好的解决方案,但我需要分隔符中虚线的笔划,因此我不能使用渐变。这是我第一个使用渐变的想法。您自己将其连接到适配器中,但我不知道这是否是Pe共振峰。请尝试并查看;)或者制作你自己的自定义列表视图,尽管我怀疑这是否值得费心。这里很容易找到最好的答案。这就是inset xml结构的用途。如果我们只需要一行,请在listview中使用并设置属性“android:dividerHeight”。您可以将
元素直接放置到
形状中,以避免重复每个listview的高度。
<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="50dp"
    android:insetRight="50dp" >

 <shape>
    <solid android:color="@color/orange" />
    <corners android:radius="2.0dip" />
</shape>

</inset>
<ListView
    android:dividerHeight="2dp"
    android:divider="@drawable/list_divider"
    ...
/>