Mi ListView tiene dos tipos de vistas. ¿Como administrar?
Mi aplicación de gestión de eventos tiene dos tipos de vistas en la vista de lista: una pequeña vista de texto simple para eventos no tan importantes y una vista compleja creada con unFrameLayout
.
en elonCreateView()
del adaptador, devuelvo estas vistas según la naturaleza del evento.
if(convertView == null){
if(important)
// inflate the complex view
else
// inflate the simpler view
}
Todo esto es bueno cuandoconvertView
es nulo. Debido al reciclaje de la vista en Android, puede suceder que elconvertView
devuelto a mí se recicla de la vista más simple y ahora tengo que mostrar la vista más grande. Una solución tonta es inflar nuevas vistas todo el tiempo. Sin embargo, esto matará el rendimiento.
Otra forma es tener invisibleTextView
s en ambos (visibility=gone
) con valores predefinidos y según el valor que contengan, puedo inflar las vistas. Para mí, esto parece un truco en lugar de una solución real.
¿Cuál es la forma correcta de manejar esta situación?