5

私はListView単色のセレクターセットを持つ を持っています。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:id="@+id/assignmentSelectedItem" />
<ListView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/assignmentsListView"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="2dp"
    android:listSelector="@drawable/assignment_list_selector" />
</LinearLayout>

Assignment_list_selector.xml -

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true"
    android:drawable="@android:color/white" />
 <item android:drawable="@android:color/transparent"/>
</selector>

ListView.Adapter私のリストには、ビューの背景が特定の色に設定されている項目があります。私の質問は、リストビューで選択した色を表示する際にセレクターがまったく機能しないのはなぜですか? もしそうなら、ビューの背景色を設定できるようにする回避策の提案。

4

1 に答える 1

13

レイアウト.xmlファイルのListViewプロパティを使用android:drawSelectorOnTop="true"して、リストビューを作成し、リストアイテムの下ではなく、リストアイテムの上にセレクターを描画できます。

アイテムの背景とリストセレクター機能がない場合は、別のアプローチを試すことができます。透過的なリストセレクターを使用します。また、リストアイテムの背景として使用するために、セレクターを変更します。例えば

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@android:color/white" />
    <item android:drawable="@android:color/your_list_item_color"/>
</selector>
于 2012-10-19T18:07:49.717 に答える