Можно ли применить собственный фон к каждому элементу Listview через селектор списка?
Селектор по умолчанию указывает @android:color/transparent
для state_focused="false"
случая, но изменение его на какой-либо настраиваемый вариант не влияет на элементы, которые не выбраны. В этом ответе Ромен Гай, кажется, предполагает, что это возможно.
В настоящее время я добиваюсь того же эффекта, используя настраиваемый фон для каждого представления и скрывая его, когда элемент выбран / сфокусирован / что угодно, чтобы отображался селектор, но было бы более элегантно, если бы все это было определено в одном месте.
Для справки, это селектор, который я использую, чтобы заставить его работать:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false"
android:drawable="@drawable/list_item_gradient" />
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true" android:state_enabled="false"
android:state_pressed="true"
android:drawable="@drawable/list_selector_background_disabled" />
<item android:state_focused="true" android:state_enabled="false"
android:drawable="@drawable/list_selector_background_disabled" />
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@drawable/list_selector_background_transition" />
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/list_selector_background_transition" />
<item android:state_focused="true"
android:drawable="@drawable/list_selector_background_focus" />
</selector>
И вот как я устанавливаю селектор:
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@drawable/list_selector_background" />
Заранее благодарю за любую помощь!