Hojas inferiores

Ejemplo de una hoja inferior modal de Material Design 3

Si quieres implementar una hoja inferior, puedes usar el elemento componible ModalBottomSheet.

Puedes usar la ranura content, que utiliza un ColumnScope para diseñar elementos componibles de contenido de la hoja en una columna:

ModalBottomSheet(onDismissRequest = { /* Executed when the sheet is dismissed */ }) {
    // Sheet content
}

Controla el estado de la hoja de manera programática

Para expandir y contraer la hoja de manera programática, usa SheetState. Puedes usar rememberModalBottomSheetState para crear una instancia de SheetState que se debe pasar a ModalBottomSheet con el parámetro sheetState. SheetState proporciona acceso a las funciones show y hide, así como a las propiedades relacionadas con el estado actual de la hoja. Estas funciones de suspensión requieren un CoroutineScope, por ejemplo, con rememberCoroutineScope, y puedes llamarlas en respuesta a eventos de la IU. Asegúrate de quitar el ModalBottomSheet de la composición cuando ocultes la hoja inferior.

val sheetState = rememberModalBottomSheetState()
val scope = rememberCoroutineScope()
var showBottomSheet by remember { mutableStateOf(false) }
Scaffold(
    floatingActionButton = {
        ExtendedFloatingActionButton(
            text = { Text("Show bottom sheet") },
            icon = { Icon(Icons.Filled.Add, contentDescription = "") },
            onClick = {
                showBottomSheet = true
            }
        )
    }
) { contentPadding ->
    // Screen content

    if (showBottomSheet) {
        ModalBottomSheet(
            onDismissRequest = {
                showBottomSheet = false
            },
            sheetState = sheetState
        ) {
            // Sheet content
            Button(onClick = {
                scope.launch { sheetState.hide() }.invokeOnCompletion {
                    if (!sheetState.isVisible) {
                        showBottomSheet = false
                    }
                }
            }) {
                Text("Hide bottom sheet")
            }
        }
    }
}

Una hoja inferior modal en Jetpack Compose que muestra contenido.