Listados con LazyColumn y LazyRow
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
LazyColumn y LazyRow en Jetpack Compose son contenedores optimizados para listas grandes de elementos, evitando la creación de elementos fuera de la vista (carga perezosa o "lazy loading").
LazyColumn organiza los elementos en una lista vertical.
LazyRow organiza los elementos en una lista horizontal.
Estas listas son ideales cuando tienes muchos elementos, y quieres que solo se carguen cuando son visibles. Ambas listas tienen la misma estructura y funcionan de manera similar. Los componentes clave incluyen:
items()
: Para listar elementos únicos.
itemsIndexed()
: Para listar elementos con un índice (útil cuando necesitas la posición del elemento).
item { }
: Para añadir elementos individuales que no están en una lista.
Con el componente LazyColumn podemos crear una lista vertical de componentes
Para que este código funcione son necesarios los siguientes import
Explicación:
itemsList crea una lista de 100 elementos con el texto "Item #".
LazyColumn se utiliza para organizar estos elementos verticalmente.
La función items(itemsList)
recorre cada elemento y lo coloca en la vista.
La configuración de LazyRow es similar a la de LazyColumn, pero organiza los elementos horizontalmente.
LazyRow organiza los elementos horizontalmente.
La función items(itemsList)
recorre cada elemento de la lista y los dispone en fila.
Si necesitas acceder al índice de cada elemento, puedes usar itemsIndexed.
Es posible agregar elementos que no sean parte de la lista (como encabezados y pies de página) utilizando la función item
.
Si necesitas añadir espacio entre los elementos, puedes hacerlo con Arrangement
en Modifier.padding()
.
El modificador key
se utiliza para ayudar a Compose a identificar elementos específicos dentro de una lista o un conjunto de elementos que se recomponen frecuentemente. Al usar claves, le estás dando una identidad única a un elemento dentro de un grupo para que Compose sepa cómo gestionar de forma adecuada las recomposiciones.
Sin una clave, Compose puede no ser capaz de diferenciar correctamente entre instancias de composables, lo que puede llevar a errores o pérdida de estado.
¿Por qué es importante usar claves?
Las claves son útiles en situaciones donde los elementos de una lista o conjunto pueden cambiar de posición, agregarse o eliminarse, y deseas que Compose sepa qué elemento es cuál. De esta forma, el sistema puede preservar el estado correcto de los composables.
Por ejemplo, en listas dinámicas o con elementos interactivos, las claves aseguran que los elementos se identifiquen correctamente durante las recomposiciones, y no se pierda el estado específico de cada uno.
¿Qué pasa si no uso claves?
Si no usas claves, puede haber problemas a la hora de identificar qué elementos corresponden a qué instancias previas. Esto puede llevar a situaciones donde Compose pierde el estado específico de un elemento, o donde un elemento hereda el estado de otro.
Por ejemplo, si no usas key
en una lista y reordenas los elementos, los estados (como el texto en un campo editable) podrían quedar asociados a un elemento incorrecto.