我有一个带有自定义分隔符的ListView。分隔器只是一些颜色,高度为3dp。 我为列表中的每个项目添加了一个自定义选择器,因此单击项目时将更改背景颜色。我的选择器如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">:
<item android:state_selected="true" android:drawable="@color/yellow" />
<item android:state_pressed="true" android:drawable="@color/yellow" />
<item android:drawable="@color/grey" />
</selector>
选择项目时,会按预期将颜色从灰色更改为黄色。 但是,列表中所有分隔符的颜色也会发生变化。为什么会这样? 我该如何解决?
答案 0 :(得分:2)
我认为,在你的例子中,你没有在选择器中写出错误的状态。这可能是个问题。尝试编写完整的选择器XML,如下所示;
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">:
<item android:state_selected="true" android:state_pressed="false" android:drawable="@color/yellow" />
<item android:state_selected="false" android:state_pressed="true" android:drawable="@color/yellow" />
<item android:state_selected="false" android:state_pressed="false" android:drawable="@color/grey" />
</selector>
答案 1 :(得分:0)
我注意到,但是也许您将分隔符设置为相同的drawable,我发布的代码可以帮助您更改分隔符的颜色。 像这样的东西。
android:divider="#FFCC00"
android:dividerHeight="4px"
答案 2 :(得分:0)
我会禁用默认分隔符并将自定义分隔符作为列表项背景的一部分(可能使用9-patch)。
答案 3 :(得分:0)
在listselector中添加自定义选择器,如
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:listSelector="@drawable/listitem_selector"/>