4

我正在尝试为dividerfor设置样式ListView。我想要的只是两条简单的水平线。

列表.xml

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/ListView" >
</ListView>

样式.xml

<style name="ListView" parent="android:style/Widget.ListView">
    <item name="android:divider">@drawable/divider</item>

    <!-- 5dp: just to make sure there's enough space -->
    <item name="android:dividerHeight">5dp</item>
</style>

分隔符.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#00ffff" />
            <size android:height="1dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#ff0000" />
            <size android:height="1dp" />
        </shape>
    </item>
</layer-list>

height of 5dp结果是一条带有(应该是 2,不是吗?)和color of red(第二个项目的颜色)的水平线。第一个带有颜色的项目#00ffff根本不显示。

有人可以建议两条简单的水平线的代码吗?

4

1 回答 1

11

我最好回答我自己的问题...

似乎styles.xml - style - itemlast itemin的颜色layer-list作为整个分隔线的背景。这last item是在其他层之上,这就是为什么层列表中的其他项目不显示的原因。

关键是padding

样式.xml

<style name="ListView" parent="android:style/Widget.ListView">
    <item name="android:divider">@drawable/divider</item>
    <item name="android:dividerHeight">10dp</item>
</style>

分隔符.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle">
            <solid android:color="#0000ff" />
            <padding android:top="5dp"/>
        </shape>
    </item>

    <item>
        <shape android:shape="rectangle">
            <solid android:color="#ff0000" />
        </shape>
    </item>

</layer-list>

分隔线

所以在我的情况下,我只需要将 10dp/5dp 更改为 2dp/1dp 即可获得 2 条细水平线。

于 2013-01-22T12:57:06.233 回答