fragmento de Android dentro de la vista de lista

mi aplicación es una red social donde los usuarios comparten enlaces y los etiquetan para que las personas adecuadas los reciban. Básicamente, la actividad principal es simplemente una vista de lista de publicaciones. Utilizo un analizador de protocolo abierto para obtener los metadatos de los objetos web en el lado del servidor.

Ahora necesito mostrar el diseño correcto en cada elemento de publicación según los metadatos (video, aplicación, página web, ...). Y, por supuesto, los diseños deben reaccionar al evento de clics del usuario y a las intenciones de llamada.

Entonces, mi primera idea es tener un diseño de marco para cada elemento donde cargo un fragmento específico a cargo de generar el diseño correcto según el tipo de recurso.

Pero realmente no estoy seguro de que cargar un fragmento dentro de un elemento de vista de lista sea una buena práctica, ya que el sistema de reutilización de vistas está totalmente desordenado.

Me gustaría saber cuál es la mejor manera de implementar esta funcionalidad para ustedes.

Gracias por su atención.

preguntado el 22 de mayo de 12 a las 11:05

1 Respuestas

Esto no es realmente para lo que están diseñados los fragmentos. No es necesario utilizar fragmentos para tener ListView filas de diferentes tipos, simplemente anule getItemViewType() y getViewTypeCount() en tu ListAdapter, luego asegúrese de crear el tipo correcto de fila a pedido en función de los metadatos.

contestado el 22 de mayo de 12 a las 12:05

Gracias CommonsWare, lo haré incluso si hubiera preferido tener una buena manera de hacerlo en lugar de darle al adaptador toda la responsabilidad de generar la vista. Algo así como una fábrica de vistas, por ejemplo. - mth.vidal

@mth.vidal: No hay nada que le impida delegar el trabajo de construcción de filas a una "fábrica de vista", aunque tiendo a pensar en el adaptador en sí "Ser" la "fábrica de vistas". Los fragmentos no son realmente una "fábrica de vistas", en mi humilde opinión, aunque eso puede ser solo una diferencia de opinión sobre el uso de la frase. - CommonsWare

Encontré una buena solución en este artículo: logc.at/2011/10/10/handling-listviews-with-multiple-row-types - mth.vidal

@GlennMaynard: ListView fue escrito muchos años antes de que existieran fragmentos. Le invitamos a escribir un FragmentListView que apoya la noción de fragmentos como filas de lista. - CommonsWare

@GlennMaynard: Todas las plataformas y marcos tienen lagunas. Si no le gustan las lagunas particulares de Android, entonces no escriba para Android, al igual que si a alguien no le gustan las lagunas de Django, puede omitir el uso de Django. - CommonsWare

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.