Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 24/11/14, 13:35:59
Array

[xs_avatar]
Dild0 Dild0 no está en línea
Usuario muy activo
 
Fecha de registro: may 2009
Mensajes: 860
Tu operador: Pepephone

Como hacer scroll infinito en un RecyclerView

Buenas me gustaría implementar un RecyclerView en el que pueda tener un scroll infinito y pongo el ejemplo de un calendario que por mucho q bajes siempre hay dias nuevos.

Como debo abordarlo? Si le meto un número muy alto puede dar la sensación de infinito pero no lo es, igualmente si ademas le añado imágenes puede que me de errores de memoria.
__________________
Responder Con Cita


  #2  
Viejo 24/11/14, 14:13:59
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Yo tenía hecho un Adapter para eso en ListView y en GridView, ahora lo he adaptado a RecyclerView.

Básicamente lo que tienes que hacer es que el getitemCount() devuelva siempre 1 elemento más del tamaño del List asociado al Adapter, y cuando ese elemento se muestre hacer una solicitud de la siguiente "página", añadirla al List actual y hacer un notifyDataSetChanged(). Yo además lo que hago es en esa posición mostrar un Spinner hasta que la solicitud se ha completado (lo uso siempre con solicitudes a servicios web, en tu caso el Spinner ni se llegaría a ver si va a ser sobre datos locales)

En tu caso concreto no se si lo "optimizaría", y haría un scroll infinito por arriba y otro por abajo, ya que siempre puede haber días antes del actual. En ese caso el getItemCount() tendría siempre + 2, uno para la posición 0 para pedir la página anterior y otro para la última para pedir la página siguiente. Y los datos siempre entre las posiciones 1 y penúltima.

En cuanto a lo de las imágenes en los RecyclerView, no vas a tener ningún problema siempre y cuando el Bitmap lo generes en el Bind, y no ya creado en el propio List (donde realmente lo que tienes que tener es una referencia al fichero de la imagen), y además uses SoftReference.
Responder Con Cita
  #3  
Viejo 24/11/14, 14:31:07
Array

[xs_avatar]
Dild0 Dild0 no está en línea
Usuario muy activo
 
Fecha de registro: may 2009
Mensajes: 860
Tu operador: Pepephone

 Cita: Originalmente Escrito por kriogeN Ver Mensaje
Yo tenía hecho un Adapter para eso en ListView y en GridView, ahora lo he adaptado a RecyclerView.

Básicamente lo que tienes que hacer es que el getitemCount() devuelva siempre 1 elemento más del tamaño del List asociado al Adapter, y cuando ese elemento se muestre hacer una solicitud de la siguiente "página", añadirla al List actual y hacer un notifyDataSetChanged(). Yo además lo que hago es en esa posición mostrar un Spinner hasta que la solicitud se ha completado (lo uso siempre con solicitudes a servicios web, en tu caso el Spinner ni se llegaría a ver si va a ser sobre datos locales)

En tu caso concreto no se si lo "optimizaría", y haría un scroll infinito por arriba y otro por abajo, ya que siempre puede haber días antes del actual. En ese caso el getItemCount() tendría siempre + 2, uno para la posición 0 para pedir la página anterior y otro para la última para pedir la página siguiente. Y los datos siempre entre las posiciones 1 y penúltima.

En cuanto a lo de las imágenes en los RecyclerView, no vas a tener ningún problema siempre y cuando el Bitmap lo generes en el Bind, y no ya creado en el propio List (donde realmente lo que tienes que tener es una referencia al fichero de la imagen), y además uses SoftReference.
Muchas gracias, me pondré con ello a ver si dejo Adapter chulo para que funcione

Gracias por la guía
__________________
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 19:22:42 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /