¿Cuál es la diferencia básica entre RecyclerView y ListView en Android?

A2A.

ListView es el antepasado de RecyclerView . Hubo muchas cosas que ListView no hizo o no hizo bien. Si tuviera que reunir las deficiencias de ListView y resolviera el problema abstrayendo los problemas en diferentes dominios, terminaría con algo como la vista del reciclador. Estos son los principales puntos problemáticos con ListViews:

  • No impuso la reutilización de View para los mismos tipos de elementos (observe uno de los adaptadores que se usan en una vista de lista, si estudia el método getView verá que nada impide que un programador cree una nueva vista para cada fila, incluso si uno se pasa a través de la variable convertView )
  • No evitó los costosos usos de findViewById (incluso si reciclaba las vistas como se indicó anteriormente, era posible que los desarrolladores llamaran a findViewById para actualizar el contenido visualizado de las vistas secundarias. El propósito principal del patrón ViewHolder en ListViews era almacenar en caché las llamadas findViewById Sin embargo, esto solo estaba disponible si lo sabías, ya que no formaba parte de la plataforma)
  • Solo admite el desplazamiento vertical con vistas visualizadas en fila (la vista del reciclador no importa dónde se colocan las vistas y cómo se mueven, se abstrae en un LayoutManager . Por lo tanto, un reciclador puede admitir el ListView tradicional como se muestra arriba, así como cosas como el GridView , pero no se limita a eso, puede hacer más, pero debe hacer el trabajo de programación para que esto suceda).
  • Las animaciones para agregar / eliminar no fueron un caso de uso que se consideró. Depende completamente de usted averiguar cómo hacer esto (compare RecyclerView. Las clases de adaptadores notifican * las ofertas de métodos v. ListViews para tener una idea).

En resumen, RecyclerView es una RecyclerView más flexible de ListView , aunque es posible que deba realizar más codificación por su parte.

RecyclerView se creó como una mejora de ListView . Usar RecyclerView es más fácil ya que:

  1. Reutiliza las celdas mientras se desplaza hacia arriba / abajo : esto es posible con la implementación de View Holder en el adaptador ListView , pero era algo opcional, mientras que en RecycleView es la forma predeterminada de escribir el adaptador.
  2. Desacopla la lista de su contenedor , por lo que puede colocar elementos de la lista fácilmente en tiempo de ejecución en los diferentes contenedores ( linearLayout , gridLayout ) con la configuración de LayoutManager .
  3. Anima acciones de lista común : las animaciones se desacoplan y se delegan a ItemAnimator .

RecyclerView es un control más flexible para manejar “datos de lista” que sigue patrones de delegación de preocupaciones y deja para sí solo una tarea: reciclar elementos.

Siempre puede obtener más información sobre estas vistas aquí: RecyclerView | Desarrolladores de Android y ListView | Desarrolladores de Android

¿Qué es RecyclerView?

-> El widget RecyclerView es una versión más avanzada y flexible de ListView.

¿Por qué RecyclerView?

-> RecyclerView es un contenedor para mostrar grandes conjuntos de datos que se pueden desplazar de manera muy eficiente manteniendo un número limitado de vistas.

¿Cuándo deberías usar RecyclerView?

-> Puede usar el widget RecyclerView cuando tiene colecciones de datos cuyos elementos cambian en tiempo de ejecución en función de la acción del usuario o eventos de red.

RecyclerView v / s ListView

-> Hay muchas nuevas funcionalidades extendidas disponibles en RecyclerView que ListView no admite directamente de la siguiente manera:

  1. El desplazamiento horizontal directo no es compatible con ListView. Mientras que en RecyclerView puede implementar fácilmente el desplazamiento horizontal y vertical .
  2. ListView solo admite una vista de lista lineal simple con desplazamiento vertical. Mientras que RecyclerView admite tres tipos de listas que utilizan RecyclerView.LayoutManager. 1) StaggeredGridLayoutManager, 2) GridLayoutManager , 3) LinearLayoutManager . Te daré una breve introducción sobre estas 3 listas más adelante.
  3. ListView le ofrece la opción de agregar un divisor mediante el parámetro dividerHeight , mientras que RecyclerView le permite personalizar el divisor (espaciado) entre dos elementos mediante la clase RecyclerView.ItemDecoration .

Aprendamos RecyclerView con un ejemplo en Android

LV: vista de lista

GV: vista de cuadrícula

RV: vista de reciclador (porque soy vago: P)

  • ViewHolder Pattern es algo que no es obligatorio en LV pero es obligatorio en RV. Debido a que RV se siente complejo pero es seguro en muchos casos. Inicialmente tuve muchos problemas con LV debido a ViewHolder.
  • RV le ofrece ambas opciones : LV y GV. Por lo tanto, puede usar LV o GV durante el tiempo de ejecución.

mRecyclerView = (RecyclerView) findViewById (R.id.recycler_view);

// para LV

mRecyclerView.setLayoutManager (nuevo LinearLayoutManager (este));

// para GV

mRecyclerView.setLayoutManager (nuevo GridLayoutManager (este, 2));

  • Item Animator & Item Decoration es algo que no obtienes en un LV pero está disponible para RV. Es necesario animar las vistas de manera efectiva. Decoraciones de elementos se utiliza para decorar la vista dinámicamente agregando boders o divisores.

RecyclerView.ItemAnimator | Desarrolladores de Android

RecyclerView.ItemDecoration | Desarrolladores de Android

Aunque RV parece poco complejo en comparación con LV / GV, es potente y mejor.

Happy Coding 3 🙂

Se podría decir separación de preocupaciones. La vista de reciclado es más robusta y admite fácilmente otras funciones que pueden ser difíciles de lograr. La vista de reciclaje funciona con otros componentes para que sus listas se vean y funcionen de maravilla, por ejemplo, el administrador de diseño permite el uso fácil de las cuadrículas en las listas. La vista de reciclaje también utiliza el patrón de soporte para acceder a las vistas, que es mejor y más rápido. Sin embargo, si necesita hacer una lista muy simple, aún puede usar la vista de lista.

En realidad, están haciendo el mismo trabajo. Mostrando grandes colecciones de datos.

Simple básico …

View es el componente básico de los widgets de Android como RecyclerView y ListView.

Las colecciones de vistas hacen ListView y RecyclerView.

Listview no recicla cada una de sus vistas. Crea vistas tanto como quieran.

Es un proceso pesado, se necesita mucho trabajo de CPU.

pero RecyclerView usa las mismas vistas y vistas para mostrar grandes colecciones,

simplemente cambiando los datos en la vista.

por ejemplo: aplicación de Gmail

Si la aplicación Gmail usa ListView, creará una nueva vista para cada correo en su bandeja de entrada.

Pero RecyclerView usa las vistas anteriores para mostrar cada correo.

Recyclerview tiene un marcador de vista predeterminado, por lo que no tenemos que escribir código explícitamente en el método getview en listview. En palabras simples, la vista de reciclaje no crea una nueva vista cada vez que el usuario se desplaza todo, lo recicla con un nuevo valor.