Пользовательский селектор для фона списка

Я пытаюсь установить некоторые пользовательские состояния выбора для каждого элемента в моем списке. Я попробовал следующее "

list_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/row_selected_background" /> <item android:state_activated="true" android:drawable="@drawable/row_selected_background" /> <item android:state_focused="true" android:drawable="@drawable/row_selected_background" /> <item android:drawable="@drawable/row_background" /> </selector> 

list.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/row_background" android:listSelector="@drawable/list_selector"> </ListView> </RelativeLayout> 

По какой-то причине выбранный фоновый цвет списка не определен, как он определен. Но нажатие / клик по умолчанию всегда является андроидным голосом для списка. Что я делаю не так?

Solutions Collecting From Web of "Пользовательский селектор для фона списка"

Используйте android:state_pressed чтобы указать android:state_pressed состояния.


/res/drawable/bg.xml использования: /res/drawable/bg.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@android:color/holo_red_dark"/> </shape> 

Селектор для использования: /res/drawable/item.xml

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

Посмотреть список:

  <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="fill_parent" android:saveEnabled="true" android:listSelector="@drawable/item" /> 

Результат нажатия на элемент списка:

Введите описание изображения здесь

Примечание. Селектор списков рисуется позади Item View, Item View может иметь свой собственный фон.

Шаг 1 :

Сначала установите row_selector.xml

Шаг 2: примените селектор к элементам как

 android:background="@drawable/row_selector" 

Шаг 3: Создайте селектор для списка, list_selector.xml со всеми прозрачными состояниями, чтобы избавиться от состояний по умолчанию.

Шаг 4: примените селектор к списку в качестве

android:listSelector="@drawable/list_selector"