1

这个让我发疯:

我有一个 ListView,我想在选择它时更改孩子的背景。列表项具有默认背景,但是当项目上有背景时,所选项目不会改变颜色...

让我想象一下:

当我为 ListView 的孩子设置背景颜色时,我得到了这个:

有背景的列表项

这是 ListView 中一个孩子的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@drawable/list_selector_normal">

    <TextView android:id="@+id/title_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="5dp" />

    <TextView android:id="@+id/description_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

但是当我在主布局中为 listView 设置一些选择器时

    android:listSelector="@drawable/list_selector"

选定的列表项不改变颜色...

但是当我从列表项(第一个代码块中的第 5 行)中删除背景时,选择器确实可以工作,但是我的背景消失了:

没有背景的列表项

选择器 xml 代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true"
          android:drawable="@drawable/list_selector_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/list_selector_focussed" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@color/blue" /> <!-- hovered -->
    <item android:drawable="@color/blue" /> <!-- default -->
</selector>

有没有办法(应该有)我可以保留我的背景(第一张图片)并更改所选项目的颜色(第二张图片)?

4

1 回答 1

0

您可以尝试在 ListView xml 中设置正常背景

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/list_selector_normal"
        />
于 2014-08-05T10:05:31.157 回答