É possível aplicar um plano de fundo personalizado a cada item do Listview por meio do seletor de lista?
O seletor padrão especifica @android:color/transparent
para o state_focused="false"
caso, mas alterar isso para algum drawable personalizado não afeta os itens que não são selecionados. Romain Guy parece sugerir nesta resposta que isso é possível.
No momento, estou conseguindo o mesmo efeito usando um plano de fundo personalizado em cada visualização e ocultando-o quando o item é selecionado / focado / seja o que for para que o seletor seja mostrado, mas seria mais elegante ter tudo isso definido em um só lugar.
Para referência, este é o seletor que estou usando para tentar fazer isso funcionar:
<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>
E é assim que estou configurando o seletor:
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@drawable/list_selector_background" />
Agradecemos antecipadamente por qualquer ajuda!