¿Debo cambiar el Listview existente en mi aplicación a RecyclerView?

¿Hay alguna ventaja de convertir el Listview existente en mi aplicación a RecyclerView? ¿Cuándo debo usar RecyclerView?

Esa es una pregunta difícil de responder. En primer lugar: Piense en el RecyclerView como el sucesor de la AdapterViews que viene con un montón de mejora útil, especialmente en los campos de las animaciones de cada elemento. En realidad eso es también lo que dicen los Docs :

RecyclerView es una versión más avanzada y flexible de ListView. Este widget es un contenedor para grandes conjuntos de vistas que se pueden reciclar y desplazarse de manera muy eficiente. Utilice el widget RecyclerView cuando tenga listas con elementos que cambien dinámicamente.

También tiene la flexibilidad de definir gestores de diseño personalizados y animaciones para este widget.

Así que en el futuro probablemente no usaremos ListViews más. Además, el RecyclerView no necesita nada como "notifyDataSetChanged()" cuando se agrega o elimina un elemento de su Lista, lo cual es una gran mejora en cuanto a rendimiento.
Si quieres saber más de lo que Google quiere decir diciendo "versión más avanzada y flexible de ListView" te recomiendo que leas este Blog-Post Un primer vistazo a RecyclerView de Android .

Pero para responder a sus preguntas explícitamente:

¿Hay ventajas de convertir el Listview existente en mi aplicación a RecyclerView?
Sí. Como ya se dijo el RecyclerView es mucho más flexible y viene con animaciones prácticas sin costo alguno. (En términos de hacer esto por su cuenta)

¿Cuándo debo usar RecyclerView?
En todas partes donde un ListView es apropiado un RecyclerView es también.

Y una pregunta adicional:
¿Es necesario cambiar de ListView a RecyclerView?
En este momento absolutamente no! Usted tiene que considerar que el RecyclerView no es final en este punto. Así que puede haber algunos cambios, correcciones de errores y nuevas características en un futuro próximo. (Como un ejemplo para un error: clipToPadding no funciona atm. Por suerte ya se ha informado )

Voy a tratar de dar una respuesta detallada a su pregunta.

Con el advenimiento de Android Lollipop, el RecyclerView hizo su camino oficialmente. El RecyclerView es mucho más potente, flexible y una mejora importante sobre ListView . Intentaré darle una penetración detallada en él.

1) Patrón de ViewHolder

En un ListView, se recomendó utilizar el patrón ViewHolder pero nunca fue una compulsión. En caso de RecyclerView, esto es obligatorio usando la clase RecyclerView.ViewHolder . Esta es una de las principales diferencias entre ListView y RecyclerView.

Esto hace que las cosas sean un poco más complejas en RecyclerView, pero muchos problemas que enfrentamos en el ListView se resuelven de manera eficiente.

Veredicto

Si ya está usando el patrón ViewHolder en sus ListViews, entonces no habrá cambio al cambiar a RecyclerView.

2) LayoutManager

Esta es otra mejora masiva traída al RecyclerView. En un ListView, el único tipo de vista disponible es el ListView vertical. No existe una forma oficial de implementar un ListView horizontal.

Ahora usando un RecyclerView, podemos tener un

I) LinearLayoutManager – que soporta listas verticales y horizontales,

Ii) StaggeredLayoutManager – que apoya Pinterest como listas escalonadas,

Iii) GridLayoutManager – que admite la visualización de cuadrículas como se ve en las aplicaciones de Galería.

Y lo mejor es que podemos hacer todo esto dinámicamente como queremos.

Veredicto

Si su aplicación exige este tipo de característica dinámica, le recomiendo que utilice el RecyclerView. Hay otras maneras de hacer esto también, pero el usar el RecyclerView es la manera más simple.

3) Animador del artículo

ListViews carecen de soporte de buenas animaciones, pero el RecyclerView trae una nueva dimensión. Utilizando la clase RecyclerView.ItemAnimator , animar las vistas se vuelve mucho más fácil e intuitivo.

Veredicto

También podemos animar los elementos de un ListView y no es tan difícil también, por lo que no es una buena razón para cambiar.

4) Decoración del artículo

En el caso de ListViews, dinámicamente decorar elementos como agregar bordes o divisores nunca fue fácil. Pero en el caso de RecyclerView, la clase RecyclerView.ItemDecorator da un gran control a los desarrolladores, pero hace que las cosas un poco más lento y complejo.

Veredicto

Podemos hacer esto en un ListView también y si usted no necesita que mucha personalización en decoraciones, entonces el ListView puede quedarse con usted.

5) OnItemTouchListener

Interceptar clics de elemento en un ListView fue simple, gracias a su interfaz AdapterView.OnItemClickListener . Pero el RecyclerView da mucho más poder y control a sus desarrolladores por el RecyclerView.OnItemTouchListener, pero complica las cosas un poco para el desarrollador.

Veredicto

Esta es una de las cosas más "innecesariamente" complejas que encontré en RecyclerView que es mucho más simple en el caso de ListViews.

El RecyclerView será el futuro, y es más que un ListView2 y la respuesta de @ reVeres explica bien el caso.

Es el momento de revisar la documentación y hacer una pequeña prueba, pero no es el momento de cambiar, porque el RecyclerView es el soporte-v21 y no se puede usar en una versión de producción.

  • Cómo implementar gridlayoutmanager horizontal
  • SwipeRefreshLayout cargador no sube cuando tire hacia abajo de Android
  • GridLayoutManager spanSizeLookup error
  • Recyclerview con fondo de desplazamiento
  • Descripción de RecyclerView setHasFixedSize
  • Multiple RecyclerView en un fragmento
  • ¿Cuáles son las ventajas de RecyclerView en comparación con ListView?
  • Android RecyclerView con volteo de CardView
  • Función de conversación de RecyclerView no bien
  • RecyclerView GridLayoutManager con el encabezado de ancho completo
  • RecyclerView encabezado y pie de página
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.