您可以部分显示底部动作条,然后让用户将其全屏显示或关闭。
为此,请向 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参数的值。- 因此,首次打开时,该工作表仅部分显示。然后,用户可以拖动或滑动它,使其全屏显示或关闭。
onDismissRequestlambda 控制用户尝试关闭底部动作条时会发生什么。在这种情况下,它只会移除工作表。
结果
用户首次按下按钮时,动作条会部分显示:
如果用户在动作条上向上滑动,动作条会填充屏幕: