2009-10-22 16 views
11

Tengo un ListView con los objetos que contienen información sobre lugares con una calificación y la distancia a la ubicación actual.Android: separador personalizado (o incluso elemento) en ListView depening en el contenido del elemento

Los elementos se ordenan en grupos:

  • Grupo 1: a menos de 500m
  • Grupo 2: 500 - 1 km
  • Grupo 3: A 1 km - 1,5 km
  • ...

Con estos grupos, los artículos se ordenan por su calificación.

Ahora pongo estos artículos a través de mi adaptador personalizado (extensión de BaseAdapter) en el ListView, que funciona perfectamente.

Sin embargo, lo que me gustaría hacer es colocar un separador antes del primer elemento de cada grupo. Este separador puede ser TextView diciendo, p. 500m - 1km seguido de todos los ListView elementos en ese grupo.

¿Alguna idea sobre cómo realizar esto?

Respuesta

19

Here is one implementation que hace exactamente lo que usted describe.

Esa es GPLv3, porque se deriva de this implementation, que era GPLv3.

También puede usar mi MergeAdapter para esto, que tiene la ventaja de ser Apache License 2.0. Simplemente dele un conjunto alterno de encabezado TextView sy Adapter que contengan el contenido de cada sección.

O bien, puede ver todos estos y desarrollar sus comportamientos en su clase existente Adapter. El truco es devolver los encabezados TextView en el lugar correcto e implementar correctamente métodos como getViewTypeCount(), getItemViewType(), areAllItemsEnabled() y isEnabled().

+0

¿Tiene alguna captura de pantalla? – Tawani

+0

Hay una captura de pantalla de la primera en mi libro avanzado de Android. Hay una captura de pantalla del segundo en el sitio de Jeff Sharkey, como se relacionó anteriormente. De todos modos, no tengo una captura de pantalla del tercero, en gran parte porque no sería una captura de pantalla de MergeAdapter, sino una captura de pantalla de todo lo que vierta en MergeAdapter. – CommonsWare

+0

Su implementación de SectionedAdapter funciona muy bien. ¡Gracias! Una pregunta rápida: ¿hay alguna manera de eliminar el divisor inferior del último elemento de la lista de cada sección? – jeffh

4

Aquí hay una implementación aún mejor, inspirada en la vista de lista de secciones de iOS: http://code.google.com/p/android-section-list/. Lo malo de esto es que el encabezado de sección permanece visible incluso si desplaza la sección hacia abajo.

Cuestiones relacionadas