2012-03-27 35 views
14

Estoy buscando implementar pinterest style gridview (ver imagen) y estoy teniendo dificultades para llegar a un enfoque.Pinterest style listview o gridview en android

La vista debe tener 3 columnas (como pinterest) con imágenes individuales que tienen ancho constante pero altura variable. Debería ser desplazable. También me preocupa el problema de poder reciclar vistas ya que el número de imágenes puede ser mucho (por ejemplo, 1000s)

No estoy seguro de cómo abordar esta vista en android.

Gaurav

Pinterest View

Respuesta

3

lo haría de esta manera:

ScrollView 
    LinearLayout (horizontal) 
    LinearLayout (vertical, layout weight for width) 
     [All the content in column 1] 
    LinearLayout (vertical, layout weight for width) 
     [All the content in column 2] 
    LinearLayout (vertical, layout weight for width) 
     [All the content in column 3] 

Uso carga diferida para las fotos si hay miles

+4

carga lenta de las imágenes no es el problema. Me preocupa más el reciclaje de las imágenes insertadas en los tres diseños lineales. – rOrlig

+1

Probé este enfoque con la carga diferida y no funciona bien, probablemente debido a que no se reciclan las vistas de la imagen. – rOrlig

+1

Hmm. Supongo que si está cargando tantas imágenes, puede eliminar las vistas al principio y agregar más vistas para finalizar a medida que se desplaza. – AJcodez

5

Nunca pensé en ello hasta que trajiste arriba, pero este es un problema interesante para intentar una solución. Mi sugerencia sería encajar 3 ListView en la Actividad o Fragmento. Supongo que cada uno recicla su propia Vista, respectivamente. Esto resuelve tu rendimiento bastante fácilmente asumiendo que es seguro hacerlo. Entonces tal vez un LinearLayout horizontal que contenga las 3 ListViews. Agregar algo de relleno al medio produciría el efecto deseado.

Por supuesto, se debe tener más cuidado al decidir cómo terminan las imágenes donde están, pero eso es lo que debes averiguar :) ¡Espero que esto te dé algunas ideas!

+0

Me gusta la sugerencia. Intentaré esto. – rOrlig