我正在尝试使用 Material 3 ModalBottomSheet 禁用手势。我见过这个问题,但接受的答案是使用不同的方法,例如 ModalBottomSheetLayout(材料 1)。我需要使用 ModalBottomSheet。
除此之外,所有其他方法都有一种禁用手势的方法。
查看实现,我没有看到任何选项。即使 SheetState 也没有任何选项。我想禁用的原因是因为我显示了一个 LazyColumn,当您到达底部时它会“摇动”底部表。有什么想法吗?
到目前为止,使用
ModalBottomSheet
时确实没有办法防止滑动。您可以做的可能改善体验的方法是使用来自状态的confirmValueChange
:
val state = rememberModalBottomSheetState(
confirmValueChange = {
it != SheetValue.Hidden
}
)
ModalBottomSheet(
sheetState = state,
onDismissRequest = { }
) {
Column {
LazyColumn {
items(30) {
Text(
modifier = Modifier.fillMaxWidth().height(50.dp).padding(16.dp),
text = "Item $it"
)
}
}
}
}
它可以防止工作表进入隐藏状态,这样它仍然具有向下滑动动画,但至少不会关闭工作表。但是,当然,您需要在工作表中执行一个操作来关闭它。