Puoi mostrare parzialmente un riquadro in basso e poi consentire all'utente di aprirlo in modalità a schermo intero o di ignorarlo.
Per farlo, passa a ModalBottomSheet
un'istanza di SheetState
con skipPartiallyExpanded
impostato su false
.
Esempio
Questo esempio mostra come utilizzare la proprietà sheetState
di
ModalBottomSheet
per visualizzare inizialmente il foglio solo parzialmente:
@Composable fun PartialBottomSheet() { var showBottomSheet by remember { mutableStateOf(false) } val sheetState = rememberModalBottomSheetState( skipPartiallyExpanded = false, ) Column( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, ) { Button( onClick = { showBottomSheet = true } ) { Text("Display partial bottom sheet") } if (showBottomSheet) { ModalBottomSheet( modifier = Modifier.fillMaxHeight(), sheetState = sheetState, onDismissRequest = { showBottomSheet = false } ) { Text( "Swipe up to open sheet. Swipe down to dismiss.", modifier = Modifier.padding(16.dp) ) } } } }
Punti chiave del codice
In questo esempio, tieni presente quanto segue:
showBottomSheet
controlla se l'app mostra il foglio inferiore.sheetState
è un'istanza diSheetState
in cuiskipPartiallyExpanded
è falso.ModalBottomSheet
accetta un modificatore che garantisce che l'elemento riempia lo schermo quando è completamente espanso.ModalBottomSheet
accettasheetState
come valore per il suo parametrosheetState
.- Di conseguenza, il foglio viene visualizzato solo parzialmente alla prima apertura. L'utente può quindi trascinarlo o scorrere per visualizzarlo a schermo intero o chiuderlo.
- La lambda
onDismissRequest
controlla cosa succede quando l'utente tenta di chiudere il foglio inferiore. In questo caso, viene rimosso solo il foglio.
Risultati
Quando l'utente preme il pulsante per la prima volta, il foglio viene visualizzato parzialmente:
Se l'utente scorre verso l'alto nel foglio, questo riempie lo schermo: