Czy za pomocą selektora listy można zastosować niestandardowe tło do każdego elementu widoku listy?
W selektor określa domyślny @android:color/transparent
dla state_focused="false"
sprawy, ale zmiana ta w jakimś niestandardowym rozciągliwej nie wpływa na elementy, które nie zostały wybrane. Romain Guy wydaje się sugerować w tej odpowiedzi, że jest to możliwe.
Obecnie osiągam ten sam efekt, używając niestandardowego tła w każdym widoku i ukrywając je, gdy element jest zaznaczony / wyostrzony / cokolwiek, aby selektor był pokazany, ale byłoby bardziej elegancko, gdyby to wszystko było zdefiniowane w jednym miejscu.
Dla porównania, oto selektor, którego używam, aby spróbować uruchomić to:
<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>
A tak ustawiam selektor:
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@drawable/list_selector_background" />
Z góry dziękuję za pomoc!