Pregunta

Quiero generar un ListView que tiene algunas divisiones entre algunas de las entradas, como se puede ver en algunas de las secciones de propiedad. Véase el siguiente ejemplo. Trato de generar un List que consta de algunos textviews seguido de uno de los divisores de lujo que explican la siguiente parte de la lista y luego otra vez algunas vistas de texto. ¿Cómo puede hacerse esto? Pensé en la creación de diferentes puntos de vista para agregar a la lista? ¿Es este el camino a seguir?

¿Fue útil?

Solución

Tengo una solución. No sé si es la mejor.

Yo uso un adaptador personalizado derivado de ArrayAdapter para la lista como se describe en este tutorial . En la clase de adaptador puedo comprobar si la posición en el método getView es una fila normal, entonces inflar el diseño fila. Si se trata de la primera fila de un nuevo grupo inflè diseño titular que es una fila normal más el título de grupo por encima de ella.

Si no quiere mezclar la cabecera en una de sus filas. Considere la siguiente solución:

Se puede sobrescribir los dos métodos getItemViewType y getViewTypeCount . Ahora tiene una lista que puede mostrar diferentes filas. Es necesario comprobar el tipo de vista prevista para el elemento en el Método getView e inflar diferentes diseños que dependen de ella.

La lista manejará el reciclaje de usted de una manera que le proporcione sólo vistas reciclaje correctas a su método de getView, significa esto si el recycleView no es nulo se puede utilizar para mostrar la celda actual.

Otros consejos

Se puede usar mi SectionedAdapter , si la GPLv3 es aceptable (con licencia de esa manera debido a algún código de aguas arriba). Puede usar mi MergeAdapter , si necesita algo más flexible y con una licencia menos limitante ( Apache 2).

Creo que podría estar buscando android.widget.ExpandableListView

http://developer.android.com/reference/android/widget /ExpandableListView.html

También estoy interesado en una respuesta a esto. Tiene que haber una manera más fácil de hacer esto.

Al analizar el adaptador, hay un método, Adapter.getItemViewType (posición int).

ListView define un valor de retorno, ITEM_VIEW_TYPE_HEADER_OR_FOOTER que indica si el artículo devuelto es un encabezado o pie de página.

Yo no lo he probado, pero supongo si crea su propio adaptador y devuelve un artículo con el tipo que indica que es un encabezado o pie de página, que el ListView se mostrará de manera adecuada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top