滚动 LazyColumn 项目会使 ScaffoldBottomSheet 折叠

问题描述 投票:0回答:1

我将实现一个带有 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
    ) {

    }
}

android-jetpack-compose bottom-sheet lazycolumn
1个回答
0
投票

该问题已在 Compose Material 3 库中的 版本 1.3.0-alpha05 中得到解决。

根据发行说明: 如果 SheetSwipeEnabled 为 false,BottomSheetScaffold 将不再从嵌套滚动中滚动。

迄今为止,最新的稳定版不包含修复程序,最新可用版本为版本1.3.0-rc01

© www.soinside.com 2019 - 2024. All rights reserved.