您可以部分顯示底部功能表,然後讓使用者將其設為全螢幕或關閉。
如要這麼做,請將 ModalBottomSheet
傳遞至 SheetState
的例項,並將 skipPartiallyExpanded
設為 false
。
範例
本範例說明如何使用 ModalBottomSheet
的 sheetState
屬性,一開始只顯示部分工作表:
@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) ) } } } }
程式碼的重點
在本例中,請注意以下事項:
showBottomSheet
會控制應用程式是否顯示底部選單。sheetState
是SheetState
的例項,其中skipPartiallyExpanded
為 false。ModalBottomSheet
會採用修飾符,確保在完全展開時填滿螢幕。ModalBottomSheet
會將sheetState
做為其sheetState
參數的值。- 因此,工作表在首次開啟時只會顯示部分內容。使用者可以拖曳或滑動該視窗,將其設為全螢幕或關閉。
onDismissRequest
lambda 會控制使用者嘗試關閉底部功能表時會發生的情況。在本例中,系統只會移除工作表。
結果
使用者首次按下按鈕時,試算表會部分顯示:
如果使用者向上滑動工作表,工作表就會填滿畫面: