我将实现一个带有 jetpack compose 的屏幕,其中底部工作表的内容中包含
ScaffoldBottomSheet
和 LazyColumn
。我还希望底部工作表的高度是固定的,并且用户不能折叠它。为了做到这一点,我禁用了工作表手势,并为底部工作表的内容提供了 600.dp
的高度。但是当我滚动惰性列的项目时,底部的工作表会向下滚动并最终折叠。
这是我的代码:
@ExperimentalMaterialApi
@Composable
fun TestScreen(
testViewModel: TestViewModel = hiltViewModel()
) {
val bottomSheetScaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = rememberBottomSheetState(
BottomSheetValue.Expanded
)
)
BottomSheetScaffold(
scaffoldState = bottomSheetScaffoldState,
sheetContent = {
Box(modifier = Modifier.fillMaxWidth().height(600.dp)) {
LazyColumn() {
items(20) {
Text(text = "this is for test", modifier = Modifier
.padding(start = 20.dp, top = 20.dp)
.fillMaxWidth()
.height(50.dp))
}
}
}
},
sheetPeekHeight = 0.dp,
sheetShape = RoundedCornerShape(topEnd = 52.dp, topStart = 52.dp),
backgroundColor = AppColor.ThemeColor.BACKGROUND,
sheetGesturesEnabled = false
) {
}
}
该问题已在 Compose Material 3 库中的 版本 1.3.0-alpha05 中得到解决。
根据发行说明: 如果 SheetSwipeEnabled 为 false,BottomSheetScaffold 将不再从嵌套滚动中滚动。
迄今为止,最新的稳定版不包含修复程序,最新可用版本为版本1.3.0-rc01