Możesz częściowo wyświetlić skrzynkę do zadań, a następnie pozwolić użytkownikowi otworzyć ją na pełny ekran lub ją zamknąć.
Aby to zrobić, przekaż ModalBottomSheet
instancję SheetState
z wartością skipPartiallyExpanded
ustawioną na false
.
Przykład
Ten przykład pokazuje, jak za pomocą właściwości sheetState
obiektu ModalBottomSheet
wyświetlić arkusz tylko częściowo:
@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) ) } } } }
Najważniejsze informacje o kodzie
W tym przykładzie zwróć uwagę na te kwestie:
showBottomSheet
określa, czy aplikacja ma wyświetlać dolny panel.sheetState
jest wystąpieniem klasySheetState
, w którejskipPartiallyExpanded
ma wartość false.ModalBottomSheet
przyjmuje modyfikator, który zapewnia, że wypełnia ekran, gdy jest w pełni rozwinięty.- Funkcja
ModalBottomSheet
przyjmuje wartośćsheetState
jako wartość parametrusheetState
.- W związku z tym po pierwszym otwarciu arkusz wyświetla się tylko częściowo. Użytkownik może ją przeciągnąć lub przesunąć w tryb pełnego ekranu albo go zamknąć.
- Funkcja lambda
onDismissRequest
określa, co się dzieje, gdy użytkownik próbuje zamknąć planszę dolną. W tym przypadku spowoduje to tylko usunięcie arkusza.
Wyniki
Gdy użytkownik naciśnie przycisk po raz pierwszy, arkusz wyświetli się częściowo:
Jeśli użytkownik przesunie kartę w górę, wypełni ona cały ekran: