Una forma limpia de implementar Multi ViewType RecyclerViews en Android. | Autor: Abhishek Jangra | Noviembre de 2021
¡Selle la clase al rescate!
Oye 👋🏻
Para ser honesto, Recycler Views en Android no es el trabajo más fácil de usar, especialmente cuando su diseño contiene listas con múltiples tipos de vista. En este artículo, compartiré una forma concisa de utilizar el poder de las clases selladas de Kotlin para implementar una vista de recuperador de tipo de vista múltiple.
Puede ver un ejemplo en la imagen de arriba, tHLos datos para este diseño generalmente se almacenan en una lista 2D, donde tenemos una lista parcial, y luego incluimos otra lista de elementos en ella, como CarData
A continuación se muestra un ejemplo. Estos datos se pueden almacenar localmente o desde fuentes remotas.
Lo más importante ahora es Estos datos no se pueden enviar directamente a la interfaz de usuario, porque Recycler View comprende los datos de forma unidimensional.Puede mostrar una lista de elementos, pero no una lista anidada. Entonces, necesitamos convertir esta lista 2D en una lista 1D, y Sealed Classes es una buena manera de hacerlo..
nosotros necesitamos Una clase sellada que se utiliza para representar datos en un nuevo formulario 1D, que se puede proporcionar directamente a Recycler View como una lista, Igual que CarListData
Como se muestra a continuación, también proporciona directamente una CarData
.
nosotros necesitamos Otra clase sellada para titulares de vistas., Debido a que tenemos 2 tipos de vista diferentes aquí, necesitamos tener 2 clases ViewHolder en una clase sellada, como CarListViewHolder
Como sigue.Cada ViewHolders responde a una clase de datos en Sealed Class CardListData
.
Ahora, finalmente, usaremos el enlace Adaptador de Recycler View (juego de palabras 😛) todo esto.Necesitaremos un Enum para ViewType, por ejemplo CarListViewType
. El adaptador utilizará una clase sellada CardListViewHolder
Y recibirá una lista CarListData
Y el tipo de vista del elemento de ubicación actual se determinará de acuerdo con su tipo de datos.
ahora en onCreate
Método, basado en ViewType, inflaremos la vista y devolveremos el ViewHolder apropiado.dentro onBind
Método Comprobaremos el tipo de datos del elemento de la lista en la posición actual, lo que nos dirá qué ViewHolder debe usar el elemento y lo emitirá de forma adecuada.
Este es un breve tutorial sobre cómo mantengo ordenadas mis vistas de reciclador en caso de que involucre varios tipos de vista.
Si todavía estás leyendo aquí, hay un virtual choca esos cinco 👋🏻. Si desea sugerir mejoras o simplemente probar este método, puede acceder al código aquí.
¡Hasta la próxima, Ciao!