Cómo implementar un reciclador de carga perezosa. Adaptador de vista como el reciclador de reino. Ver el adaptador usando kotlin.

Necesito implementar un recyclerView que muestre mis consultas en Parse, así que lo hice:

private class Pagination extends RecyclerView.OnScrollListener{ @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); visibleItemCount = manager.getChildCount(); totalItemCount = manager.getItemCount(); firstVisibleItemPosition = manager.findFirstVisibleItemPosition(); if (!isLoading && !isLastPage) { if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount && firstVisibleItemPosition >= 0 && totalItemCount >= PAGINATION) { isLoading = true; new Handler().postDelayed(new Runnable() { @Override public void run() { loadData(); } }, 2000); } } } } 

y funciona bien Pero hace algunos meses utilicé el adaptador realm recyclerView que funciona sin pagination (y funciona muy bien porque tengo 50k elementos para mostrar) y quiero hacer un adaptador como este. También uso Kotlin y he visto el concepto de variable diferida:

 val lazyValue: String by lazy { println("computed!") "Hello" } 

pero no sé cómo usarlo para hacer adaptadores por este motivo: ahora cuando realizo una consulta para analizar, es algo como esto:

  val dishes = ParseQuery.getQuery<ParseObject>("Books").setSkip(index).setLimit(pagination) dishes.findInBackground { objects, e -> e?.let { listener?.onPaginationError(e.message) } ?:run { createNewDish(objects,listener,false) } } 

y cómo funciona cuando uso un enfoque perezoso? Necesito download todos los artículos o también necesito paginar?

Gracias por tu ayuda.

Utilicé el adaptador realm recyclerView que funciona sin pagination (y funciona muy bien porque tengo 50k elementos para mostrar) y quiero hacer un adaptador como este.

En realidad, esto es magia de Realm, no es un adaptador. Y no puede get el mismo gusto, porque la architecture de carga diferida de Realm será superrápida que otras, como la pagination del lado del server. Lo siento, no puedes imitarlo.

Necesito download todos los artículos o también necesito paginar?

Si la fuente de datos del lado del server no puede manejar la request de pagination, primero debe cargar todos los elementos, luego consultarla en el lado del cliente y dejar que el adaptador muestre los elementos en recyclerview

¿Cómo funciona cuando uso un enfoque perezoso?

Lo que entiendo es de eso, ¿quieres combinar la pagination y la pereza de kotlin?

Ya un adaptador necesita un set de datos (tal vez elementos del 10 al 20 de una fuente de datos) para mostrar cuando sea necesario. Así que no puedo ver ningún uso apropiado para el perezoso de kotlin.

  • Error al configurar el reino con kotlin
  • Modo correcto de consulta de Android Kotlin Realm + devolución de elementos no administrados en Bg Thread
  • Reino que devuelve datos obsoletos
  • Cómo usar Realm's en el método con Kotlin
  • "Objeto" no es parte del esquema para este Reino
  • Acceso al reino desde un hilo incorrecto en Espresso
  • La aplicación del complemento Realm en el proyecto Kotlin produce un error de compilation
  • Uso perezoso de Kotlin
  • La compilation falla al usar 'kotlin-kapt' con el reino
  • El complemento "kotlin-noarg" no funciona en el Reino
  • Usa el reino en todos los hilos