HorizontalMultiBrowseCarousel
Material 3 |
---|
![]() |
Implementación
A partir de la versión 1.3.0
de compose podemos hacer uso del HorizontalMultiBrowseCarousel
, un nuevo elemento que permite tener un carrusel con múltiples ítems. Este componente resalta algunos elementos con mayor tamaño.
Definición del componente
@ExperimentalMaterial3Api@Composablefun HorizontalMultiBrowseCarousel( state: CarouselState, preferredItemWidth: Dp, modifier: Modifier = Modifier, itemSpacing: Dp = 0.dp, flingBehavior: TargetedFlingBehavior = CarouselDefaults.singleAdvanceFlingBehavior(state = state), minSmallItemWidth: Dp = CarouselDefaults.MinSmallItemSize, maxSmallItemWidth: Dp = CarouselDefaults.MaxSmallItemSize, contentPadding: PaddingValues = PaddingValues(0.dp), content: @Composable CarouselItemScope.(itemIndex: Int) -> Unit)
Atributo | Descripción |
---|---|
state | CarouselState. Se utiliza para controlar el estado del componente. |
preferredItemWidth | Es el ancho aproximado que deben tener los ítems completamente desplegados. Este ancho se ajustará según el espacio disponible y los demás elementos. El componente ajusta primero los ítems más comprimidos (estos se pueden ajustar con las propiedades de minSmallItemWidth y maxSmallItemWidth), y luego los “medianos”. |
modifier | Modificador que aplicará al composable. |
itemSpacing | Es el espacio que existirá entre cada ítem. |
flingBehavior | TargetedFlingBehavior. Es la clase que define el comportamiento del desplazamiento. |
minSmallItemWidth | El ancho mínimo permitido para los ítems que visualmente están comprimidos. |
maxSmallItemWidth | El ancho máximo permitido para los ítems que visualmente están comprimidos. |
contentPadding | Es el espacio que se agregará alrededor del contenido, puede ser usado para agregar espacio antes del primer ítem y después del último. |
CarouselState
@ExperimentalMaterial3Api@Composablefun rememberCarouselState( initialItem: Int = 0, itemCount: () -> Int,)
Atributo | Descripción |
---|---|
initialItem | Es el número del ítem en el que comenzará el carrusel. |
itemCount | Función lambda que devuelve el número total de ítems que tendrá el carrusel. Es una función para soportar casos donde se agreguen más ítems al carrusel. |
Ejemplos
Demostración de un HorizontalMultiBrowseCarousel
@ExperimentalMaterial3Api@Composablefun CarouselHorizontalExample() { val state = rememberCarouselState(itemCount = { 5 }, initialItem = 0)
Column(verticalArrangement = Arrangement.Center) { HorizontalMultiBrowseCarousel( state = state, preferredItemWidth = 250.dp, modifier = Modifier.height(200.dp), itemSpacing = 10.dp ) { page -> Box( modifier = Modifier .padding(10.dp) .background(Color.Blue) .fillMaxSize() .aspectRatio(0.5f), contentAlignment = Alignment.Center ) { Text(text = page.toString(), fontSize = 32.sp, color = Color.White) } } }}