ModalBottomSheet 不尊重导航填充

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

尝试展示一个简单的

ModalBottomSheet
,但在导航和状态栏填充方面遇到了困难。在某些设备上,无法将内容置于导航按钮上方。它似乎适用于 Pixel 6,但 3a 似乎忽略它(见下图)。

 ModalBottomSheet(
        modifier = Modifier,
        containerColor = Colors.Grey,
        sheetState = rememberModalBottomSheetState(true),
        content = {
            Column(
                modifier = Modifier
                    .fillMaxSize()
                    .navigationBarsPadding(),
                horizontalAlignment = Alignment.CenterHorizontally
            ) {
                Spacer(modifier = Modifier.weight(1f))
                Text(text = "Some text at the bottom", color = Color.Black)
            }
}

这将作为

ComposeView
添加到活动的
content
视图中。

 viewGroup.addView(
        ComposeView(viewGroup.context).apply {
            setContent {
                AppTheme {
                    // Modal Bottom sheet above
                }
            }
        }
    )

其中 viewGroup 是

activity.findViewById(R.id.content) as ViewGroup
以支持互操作

关于如何添加底部填充以匹配导航按钮高度有什么建议吗?或者有其他建议让底部工作表不遮挡按钮?另外,状态栏也是如此。

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

您可以尝试使用窗口插入修改器。如果您不需要可组合项在导航栏或状态栏后面绘制,那么您可以使用

safeDrawingPadding()
修饰符:

ModalBottomSheet(
    modifier = Modifier.safeDrawingPadding(),
    // ...
}

如果这适用于您的情况,请报告。

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