val sheetState = rememberModalBottomSheetState(
skipPartiallyExpanded = true,
confirmValueChange = {
true
}
)
ModalBottomSheet(
sheetState = sheetState,
content = {
Box(
modifier = Modifier
.fillMaxSize()
.verticalScroll(rememberScrollState())
.padding(10.dp)
) {
content()
}
}
)
代码如下编写是可以实现垂直滚动的,但是滚动到底部时存在底部sheet关闭的问题
如何确保底部工作表不会关闭并允许垂直滚动? 阻止拖动事件本身不会将底部工作表关闭到底部滚动,但您也无法垂直滚动。 我没有找到办法做到这一点。
BottomSheetScaffold
。它提供了一个名为 sheetSwipeEnabled
的参数,您可以在其中设置是否可以通过滑动来展开或折叠 BottomSheet。此属性似乎不适用于 ModalBottomSheet
。
您可以尝试以下代码:
val scaffoldState = rememberBottomSheetScaffoldState()
val scrolLState = rememberScrollState()
val endReached by remember {
derivedStateOf {
scrollState.value == scrollState.maxValue
}
}
BottomSheetScaffold(
scaffoldState = scaffoldState,
sheetPeekHeight = 128.dp,
sheetSwipeEnabled = !scaffoldState.bottomSheetState.hasExpandedState || endReached,
sheetContent = {
Box(
Modifier.fillMaxWidth().height(128.dp),
contentAlignment = Alignment.Center
) {
Text("Swipe up to expand sheet")
}
Box(
modifier = Modifier
.fillMaxSize()
.verticalScroll(scrollState)
.padding(10.dp)
) {
content()
}
}
) { innerPadding ->
// some Scaffold content
}
这应该会导致以下行为:
请报告是否有效,因为我现在无法测试该方法。