1

これは私を夢中にさせています:

子が選択されたときに子の背景を変更したい ListView があります。リストアイテムにはデフォルトの背景がありますが、アイテムに背景がある場合、選択したアイテムの色は変わりません...

これを少し視覚化してみましょう。

A background color を 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>

背景(最初の画像)を保持し、選択したアイテム(2番目の画像)の色を変更できる方法はありますか(あるはずです)?

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 に答える