2010-12-02 15 views
5

Estoy creando una vista compleja basada en datos dinámicos. Dependiendo de la cantidad de elementos de datos en las colecciones, agrego más vistas. Cada una de estas subvistas son complejas y se inflan en el ciclo a través de la recopilación de datos.Reutilizar vistas infladas

Esto es, por supuesto, ineficiente y me gustaría encontrar una manera de inflar la subvista solo una vez y luego reutilizarla en su lugar. ¿Es esto posible de alguna manera?

PD: No quiero construir las subvistas en el código (sé que podría) porque eso haría las cosas aún más complicadas debido a las complejidades y el número de subvistas, pero si el rendimiento aumentara considerablemente podría tomar una mira eso.

PPS: No hay problema de rendimiento visible pero traceview que la mayor parte del tiempo se dedica a inflar y si puedo hacerlo más rápido me encantaría ;-)

+0

¿Alguna vez descubrió esto? Estoy con exactamente el mismo problema y no puedo encontrar una solución. – Tiago

+1

No ... desafortunadamente no. Casi me rindo por esto. Lo mejor que se me ocurrió fue una vista creada a partir de código y almacenamiento en caché que ... pero es feo escribir y mantener. –

+0

Ya veo. ¡Gracias por responder a Manfred! – Tiago

Respuesta

2

Se puede extraer de la IO Sesión Google titulado ' El mundo de ListView '.

Explica muy bien cómo evitar inflar la misma vista una y otra vez, y cómo reutilizar una vista particular si ya se ha inflado anteriormente.

Aquí está el enlace.

http://www.google.com/events/io/2010/sessions/world-of-listview-android.html

Usted puede descargar el archivo .pdf o ver el vídeo.

Espero que ayude.

Saludos, Mahendra Liya.

+1

Gracias por la sugerencia, pero en mi caso NO trato con listviews. He aplicado bien ese patrón en mis páginas simples de vista de lista, pero en este caso las "listas" están compiladas insertando dinámicamente vistas infladas y hay tres diferentes en la página. Las vistas de lista no funcionan bien si tienes varias en la misma página y también tienen un comportamiento de desplazamiento incorrecto. Necesito desplazarme por toda la página. Todos los trabajos de renderizado y el comportamiento funcionan bien ... simplemente infla cada vista varias veces. –

Cuestiones relacionadas