尝试展示一个简单的
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
以支持互操作
关于如何添加底部填充以匹配导航按钮高度有什么建议吗?或者有其他建议让底部工作表不遮挡按钮?另外,状态栏也是如此。
您可以尝试使用窗口插入修改器。如果您不需要可组合项在导航栏或状态栏后面绘制,那么您可以使用
safeDrawingPadding()
修饰符:
ModalBottomSheet(
modifier = Modifier.safeDrawingPadding(),
// ...
}
如果这适用于您的情况,请报告。