我在尝试使用 Jetpack Compose 中的 ModalBottomSheet() 时遇到了问题,因为无论我做什么,dragHandle 始终可见。然后我在描述拖动手柄可组合项的源文件“SheetDefaults.kt”中发现了这个小惊喜:
Surface(
modifier = modifier
.padding(vertical = DragHandleVerticalPadding)
.semantics { contentDescription = dragHandleDescription },
color = color,
shape = shape
)
进一步检查,值
DragHandleVerticalPadding
实际上是硬编码在该文件的末尾......
private val DragHandleVerticalPadding = 22.dp
。
是否有解决此问题的方法,以便 DragHandle 不再可见? 预先感谢您。
我尝试通过将修改器传递给 BottomSheetDefaults() 来手动更改拖动手柄和填充的大小,但是手柄的高度在某种程度上比仅在 ModalBottomSheet 中为 DragHandle 传递空花括号时更大。
这是 ModalBottomSheet 的代码,使用 BottomSheetDefaults.DragHandle(...) 并将修饰符作为参数传递:
ModalBottomSheet(
onDismissRequest = {
playerViewModel.updateShowPlayer(false)
},
shape = RoundedCornerShape(0.dp),
sheetState = sheetState,
dragHandle = { BottomSheetDefaults.DragHandle(
modifier = Modifier.padding(0.dp),
width = 0.dp,
height = 0.dp,
color = Color.Transparent,
shape = RoundedCornerShape(0.dp)
)},
containerColor = Color(0xFF111111),
contentColor = Color(0xFF111111),
modifier = Modifier.fillMaxSize(),
) {
PlayerScreen(
// modifier = Modifier.offset(y = offset.dp),
onClose = {
// playerViewModel.onClose()
},
isCurrent = true,
screenSize = 740.dp,
onDrag = {
// playerViewModel.onDrag(it)
}
)
}
此代码会导致拖动手柄的高度比此方法更大:
dragHandle = {} // or dragHandle = null
对我来说,要么做
dragHandle = null
或
dragHandle = {}
删除拖动手柄。
ModalBottomSheet(
onDismissRequest = { },
dragHandle = { }
) {
Column {
Text(text = "HELLO")
}
}