Чи можна застосувати спеціальний фон до кожного елемента перегляду за допомогою селектора списку?
Селектор за замовчуванням вказує @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" />
Заздалегідь дякую за будь-яку допомогу!