android列表项选择器和分隔符

时间:2012-08-08 09:48:16

标签: android listview android-layout

我有一个带有自定义分隔符的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>

选择项目时,会按预期将颜色从灰色更改为黄色。 但是,列表中所有分隔符的颜色也会发生变化。为什么会这样? 我该如何解决?

4 个答案:

答案 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"/>