我正试图为divider
设置ListView
的样式。我想要的只是两条简单的水平线。
list.xml
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/ListView" >
</ListView>
styles.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>
divider.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
的项目根本没有显示。
有人可以建议 2条简单水平线的代码吗?
答案 0 :(得分:11)
我最好回答我自己的问题......
似乎styles.xml - style - item
采用last item
中layer-list
的颜色作为整个分频器的背景。此last item
位于其他图层的顶部,这就是图层列表中的其他项目未显示的原因。
关键是 padding
。
<强> styles.xml 强>
<style name="ListView" parent="android:style/Widget.ListView">
<item name="android:divider">@drawable/divider</item>
<item name="android:dividerHeight">10dp</item>
</style>
<强> divider.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条细水平线。