有什么方法可以禁用 Jetpack Compose ModalBottomSheet(材料 3)上的向下滑动吗?

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

我正在尝试使用 Material 3 ModalBottomSheet 禁用手势。我见过这个问题,但接受的答案是使用不同的方法,例如 ModalBottomSheetLayout(材料 1)。我需要使用 ModalBottomSheet。

除此之外,所有其他方法都有一种禁用手势的方法。

查看实现,我没有看到任何选项。即使 SheetState 也没有任何选项。我想禁用的原因是因为我显示了一个 LazyColumn,当您到达底部时它会“摇动”底部表。有什么想法吗?

android android-jetpack-compose material-design
1个回答
0
投票

到目前为止,使用

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"
                )
            }
        }
    }
}

它可以防止工作表进入隐藏状态,这样它仍然具有向下滑动动画,但至少不会关闭工作表。但是,当然,您需要在工作表中执行一个操作来关闭它。

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