您可以部分顯示底部功能表,然後讓使用者全螢幕顯示或關閉。
如要這麼做,請將 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 會控管使用者嘗試關閉底部功能表時發生的情況。在本例中,系統只會移除工作表。
結果
使用者第一次按下按鈕時,系統會顯示部分頁面:

如果使用者在功能表上向上滑動,功能表就會填滿畫面:
