2011-06-21 13 views
6

Estoy desarrollando una aplicación en Honeycomb con un ListView. Cuando uso un ArrayAdapter normal para alimentar el contenido de ListView, puedo pasarle un diseño integrado como Android.R.layout.simple_selectable_list_item. Esto crea un elemento seleccionable con una agradable animación de desvanecimiento cuando se selecciona un elemento que sea coherente con la sensación general de Honeycomb.Uso de un adaptador de ListView personalizado con temas predeterminados de Android

Sin embargo, si decido usar mi propio diseño personalizado (o para crear un adaptador personalizado), ya no tengo ninguna animación cuando me enfoco o selecciono un elemento en el ListView. Pude construir mi propia animación, pero preferiría usar el tema Holo predeterminado para desarrollar Honeycomb por simplicidad y consistencia.

No entiendo cómo hacerlo y no he podido encontrar a nadie más en mi lucha (¡quizás estoy buscando los términos incorrectos, o me falta algo obvio!). ¿Alguien tiene alguna sugerencia? Me imagino que implica la identificación de algún tipo de estilo o tema en el archivo XML para el diseño, pero no he descubierto dónde colocarlo o cuáles podrían ser los contenidos.

Gracias!

Respuesta

6

Entendido: tuve que eliminar todos referencias a android: listSelector y android: fondo para mi ListView. Luego agregué

android:background=?android:attr/listChoiceBackgroundIndicator 

a mi vista de nivel superior para el diseño de la fila ListView.

+1

El ListView selector es dibujado por un ListView bajo el elemento actualmente tocado. Cuando tus artículos tienen un fondo no transparente (que no deberían tener), obviamente no puedes ver eso. Simplemente dibuja un fondo de un elemento y una lista dibuja su selector debajo de él introduciendo un sobregiro innecesario. Tenga en cuenta que si necesita absolutamente un fondo de elemento no transparente, una lista puede dibujar selectores en la parte superior (android: drawSelectorOnTop). Solo algo de reflexión. – EvilDuck

Cuestiones relacionadas