Resumen de RecyclerView

Contenido

1. Similitudes y diferencias entre RecyclerView y ListView

2. Uso de RecyclerView

¿Pasos sencillos para hacerlo? utilizar

p>

? - Monitoreo de eventos de clic en elementos

? - Monitoreo de eventos de desplazamiento

- Configuración de decoración

? - Configuración de animación

?

RecyclerView y ListView son componentes que se utilizan para mostrar grandes conjuntos de datos. Ambos pueden reciclar y reutilizar vistas invisibles para ahorrar recursos y mejorar el rendimiento. A diferencia de ListView, RecyclerView tiene mayor flexibilidad, principalmente debido a su diseño plug-in y completamente desacoplado:

Las principales diferencias entre RecyclerView y ListView:

Cuando se usa RecyclerView, varias clases internas de RecyclerView se usa generalmente:

Una forma simple es llamar al método setOnClickListener() de la vista cuando está onBindViewHolder; o al definir ViewHolder, dejar que opere la interfaz OnClickListener:

Si Si necesita manejar eventos de clic en una actividad o fragmento, puede diseñar una interfaz en el adaptador para llamadas externas:

Usar en una actividad o fragmento:

Los eventos de desplazamiento de RecyclerView se pueden monitorear usando el método addOnScrollListener:

El proceso de desplazamiento generalmente se divide en dos tipos:

Correspondiente al valor newState en onScrollStateChanged:

Entonces lo anterior Las condiciones en onScrollStateChanged se puede traducir como: el desplazamiento se detiene amp; el penúltimo elemento ya está visible amp no está en el proceso de carga

El significado de dx y dy en onScrolled:

Google proporciona una clase de implementación RecyclerView.ItemDecoration DividerItemDecoration como divisor predeterminado. El método de uso es el siguiente:

Código fuente de DividerItemDecoration

La implementación de DividerItemDecoration incluye principalmente tres métodos:

El proceso de dibujo es aproximadamente el siguiente:

La última versión de DividerItemDecoration también proporciona un método setDrawable (dibujable) para facilitarnos la personalización del estilo del divisor nosotros mismos.

Por ejemplo, creo un nuevo archivo divider_drawable.xml en el directorio res/drawable:

Luego uso este archivo para reemplazar el archivo de recursos divisor predeterminado al construir la decoración:

El efecto después El reemplazo es el siguiente:

Puede ver que debido a que getItemOffsets() predeterminado establece el valor de relleno de la parte inferior, el color de fondo de la capa debajo de RecyclerView está expuesto en los lados izquierdo y derecho del divisor. Para esta situación, puede imitar el DividerItemDecoration predeterminado y heredar RecyclerView.ItemDecoration para implementar una decoración, cambiar el método de dibujo a onDrawOver() y no establecer el valor de relleno en getItemOffsets(), para que el divisor se pueda dibujar encima del artículo.

Por supuesto, existe una forma más sencilla de configurar el divisor. Simplemente agregue un ImageView y dibuje una línea directamente en el archivo de diseño del elemento ( ̄Д ̄).

¿Igual que Google? También se proporciona una animación predeterminada DefaultItemAnimation, que se puede configurar utilizando el método setItemAnimation().

También podemos heredar RecyclerView.ItemAnimation para definir la animación del elemento nosotros mismos. Aquí recomendamos una biblioteca de animación de terceros, recyclerview-animatiors, que es simple, fácil de usar y ampliable.

Comprensión general y uso de RecyclerView

/first-glance-androids-recyclerview/

/android/using-the-recyclerview#attaching-click-listeners - con decoradores

/reference/android/support/v7/widget/RecyclerView.html

/p/12ec590f6c76

Evento de clic

/p/f2e0463e5aef

Evento de desplazamiento

/index.php/2016/06/13/RecyclerView-Scroll-Listener.html

El proyecto completo está en mi github, si te ayuda, también podrías darle una estrella ( ̄? ̄)