有没有办法更改 Jetpack Compose 中 Material3 的 ModelBottomSheet 中的拖拽手柄的大小和填充?

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

我在尝试使用 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
android android-jetpack-compose android-jetpack bottom-sheet android-jetpack-compose-material3
1个回答
0
投票

对我来说,要么做

dragHandle = null

dragHandle = {}

删除拖动手柄。

ModalBottomSheet(
    onDismissRequest = { },
    dragHandle = {  }
) {
    Column {
        Text(text = "HELLO")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.