È possibile applicare uno sfondo personalizzato a ciascun elemento Listview tramite il selettore di elenco?
Il selettore predefinito specifica @android:color/transparentper il state_focused="false"caso, ma modificarlo in alcuni disegnabili personalizzati non influisce sugli elementi che non sono selezionati. Romain Guy sembra suggerire in questa risposta che questo è possibile.
Al momento sto ottenendo lo stesso effetto utilizzando uno sfondo personalizzato su ciascuna vista e nascondendolo quando l'elemento è selezionato / focalizzato / qualunque cosa in modo che venga mostrato il selettore, ma sarebbe più elegante averlo definito tutto in un unico posto.
Per riferimento, questo è il selettore che sto usando per provare a farlo funzionare:
<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>
Ed è così che imposto il selettore:
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@drawable/list_selector_background" />
Grazie in anticipo per qualsiasi aiuto!