Guía completa para implementar la paginación moderna en Android (JAVA) de Devbrat Dash | Dev Crumbs | Octubre de 2020

Entonces habrá un total de 6 componentes importantes que tendremos que entender e implementar.

Por el nombre en sí, encontrará que este componente será

Puede ser cualquier recurso de la API web o de la base de datos local.

Sin embargo, en esta biblioteca tenemos 3 tipos de fuentes de datos y en base a nuestro caso de uso tenemos que elegir una.

Usamos esta fuente de datos cuando tenemos que leer datos en cualquier posición, es decir, cuando existe la posibilidad de que el usuario cargue primero los primeros 10 elementos (1-10) y luego salte a la posición en la que debería cargar otros 10 elementos a partir de, digamos, 70 elementos. (70–80).

por ejemplo: aplicación Contactos.

Usamos esta fuente de datos cuando el siguiente bloque de datos a cargar depende del último elemento del bloque cargado actualmente.

Usamos esta fuente de datos cuando los números de página se enumeran en los bloques.

Por ejemplo: vea la animación a continuación

Usaré para este artículo porque se implementa con mucha frecuencia en la mayoría de las API. La API que usaremos para esta implementación es la propia API de marcador de posición JSON. Sin embargo, solo necesita cambiar la URL de acuerdo con el resto del punto final de la API, todos serán iguales.

Esta API devuelve una lista de 20 publicaciones según el número de página especificado como parámetro de consulta.

Esta carpeta está aquí la fuente de datos seleccionada anteriormente en nuestro caso y

Esto tiene que ver con la implementación de patrones de diseño de arquitectura pura en Java. El uso de una clase de fábrica para crear una instancia de un objeto es uno de los 23 patrones de diseño y se conoce como patrón de diseño de fábrica.

Si alguna vez implementó MVVM en Android, es posible que conozca este componente. Para quienes no lo sepan, la función principal de este componente es

En nuestra implementación, esto crea una instancia de la fuente de datos usando la fábrica de fuentes de datos y devuelve una instancia de la lista paginada.

es como un ArrayList (porque también implementa AbstractList), que lee sus datos en bloques (páginas) de una fuente de datos.

Este componente es

Llama al repositorio para recuperar los datos como una lista paginada y pasarlos a la actividad o al fragmento.

Este componente es responsable de recuperar datos como una lista paginada del componente de modelo de visualización y crear una instancia del PagedListAdapter y pasar la lista paginada que recibe del ViewModel al PagedListAdapter.

Como discutimos al comienzo de la publicación, necesitaremos usar el PagedListAdapter para implementar la paginación usando la biblioteca Paging2.

Finalmente, veamos nuestra estructura de carpetas.

Los adaptadores tendrán las clases PostRecyclerAdapter, LoadingViewHolder y PostViewHolder

La carpeta del modelo tendrá PostDataSource, un POJO para la carpeta Publicar en la entidad y una carpeta PostRepository en la carpeta de repositorios.

La carpeta de red tiene una API y una implementación de RetrofitClient

El modelo de vista tendrá las clases MainActivityViewModel y MainActivityViewModelFactory

La carpeta de visualización tendrá una clase MainActivity

Un conjunto de constantes que contiene todas las constantes que se utilizarán en todo el proyecto. Actualmente estamos almacenando constantes de estado de carga, es decir, EN CURSO, FALLIDO y ÉXITO

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *