如何禁止BottomSheetScaffold被滑动拖拽?仅通过按钮关闭
解决BottomSheetScaffold禁止滑动关闭底部弹窗的问题
你用错属性了,drawerGesturesEnabled是控制侧边抽屉的滑动手势,和底部弹窗完全无关。要禁用底部弹窗的滑动关闭行为,得用sheetGesturesEnabled属性,把它设为false即可。
示例代码
val sheetState = rememberBottomSheetState(skipPartiallyExpanded = true) val coroutineScope = rememberCoroutineScope() BottomSheetScaffold( sheetContent = { Column( modifier = Modifier.fillMaxWidth().padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { Text("底部弹窗内容") Button( onClick = { coroutineScope.launch { sheetState.collapse() } } ) { Text("关闭弹窗") } } }, sheetState = sheetState, sheetGesturesEnabled = false, // 关键:禁用滑动关闭 scaffoldState = rememberBottomSheetScaffoldState() ) { Button( onClick = { coroutineScope.launch { sheetState.expand() } } ) { Text("打开底部弹窗") } }
通过sheetState配合协程可以精准控制弹窗的展开与收起,设置sheetGesturesEnabled = false后,用户只能通过点击弹窗上的按钮关闭它,滑动操作会完全失效。
内容的提问来源于stack exchange,提问作者saro
相关产品推荐
相关产品推荐

