Sie können eine Ansicht am unteren Rand teilweise einblenden und dem Nutzer dann entweder den Vollbildmodus einblenden oder ihn schließen.
Dazu übergeben Sie Ihrem ModalBottomSheet
eine Instanz von SheetState
, wobei skipPartiallyExpanded
auf false
gesetzt ist.
Beispiel
In diesem Beispiel wird gezeigt, wie Sie die Eigenschaft sheetState
von ModalBottomSheet
verwenden können, um das Tabellenblatt zuerst nur teilweise anzuzeigen:
@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) ) } } } }
Wichtige Informationen zum Code
Beachten Sie in diesem Beispiel Folgendes:
showBottomSheet
steuert, ob in der App die Ansicht am unteren Rand angezeigt wird.sheetState
ist eine Instanz vonSheetState
, wobeiskipPartiallyExpanded
„false“ ist.ModalBottomSheet
verwendet einen Modifikator, mit dem sichergestellt wird, dass er beim vollständigen Maximieren den Bildschirm ausfüllt.ModalBottomSheet
verwendetsheetState
als Wert für den ParametersheetState
.- Daher wird das Tabellenblatt beim ersten Öffnen nur teilweise angezeigt. Der Nutzer kann sie dann ziehen oder wischen, um sie im Vollbildmodus anzuzeigen oder zu schließen.
- Das Lambda
onDismissRequest
steuert, was passiert, wenn der Nutzer versucht, die Ansicht am unteren Rand zu schließen. In diesem Fall wird nur das Tabellenblatt entfernt.
Ergebnis
Wenn der Nutzer zum ersten Mal auf die Schaltfläche drückt, wird ein Teil der Tabelle angezeigt:
Wenn der Nutzer auf dem Tabellenblatt nach oben wischt, füllt es den Bildschirm aus: