自定义列表视图的选择器“更改ListView背景 - 奇怪的行为”

时间:2011-02-14 07:55:41

标签: android listview selector

我正在使用此tutorials,我想为此列表视图添加选择器。我尝试了一些代码,但它确实有效。我该怎么做。

我使用了代码作为list_selector.xml

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

    <item android:state_focused="true"
        android:drawable="@drawable/list_selector_background_focus" />
    <item android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_pressed" />

</selector>

和我的列表视图

<ListView
              android:id="@+id/select_names_tags_lv"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:listSelector="@drawable/list_selector"
              android:layout_alignParentTop="false"
              android:layout_gravity="center_vertical">
            </ListView>

2 个答案:

答案 0 :(得分:2)

检查以下链接。在这里我提到了一个完整的代码来正确使用listview。使用这个我们可以实现任何listview行为。我们也可以嵌入动画。

Change ListView background - strange behaviour

希望这有帮助:)

答案 1 :(得分:0)

只需将listSelector中的单词更改为背景。因为你想要它作为背景可绘制选择器,对吗?

        <ListView
          android:id="@+id/select_names_tags_lv"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
                android:background="@drawable/list_selector"
          android:layout_alignParentTop="false"
          android:layout_gravity="center_vertical">
        </ListView>

编辑:

尝试将您的选择器文件更改为(我更改了两个项目的顺序):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_pressed" />
    <item android:state_focused="true"
        android:drawable="@drawable/list_selector_background_focus" />
</selector>