我有一个屏幕,其中包含一个地图,我想使一个statusBar完全透明。
我试过的是:
implementation "com.google.accompanist:accompanist-systemuicontroller:0.26.1-alpha"
@Composable
fun MapMainScreen() = Column(
modifier = Modifier.fillMaxSize()
) {
val controller = rememberSystemUiController()
controller.setStatusBarColor(color = Color.Transparent)
controller.setNavigationBarColor(color = Color.Transparent)
controller.setSystemBarsColor(color = Color.Transparent)
Map()
}
此外,我曾经尝试在window中使用MainActivity和setContent call:
WindowCompat.setDecorFitsSystemWindows(window, false)
window.setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
)
我想看到一个类似Google地图的结果,但是现在我的statusBar变成了白色灰色而不是透明的。
我如何解决这个问题并使我的statusBar透明?
发布于 2022-11-27 20:59:51
不需要任何额外的依赖关系。
在撰写主题(或直接在活动中)中,设置如下:
SideEffect {
with(view.context as Activity) {
WindowCompat.setDecorFitsSystemWindows(window, false)
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
window.statusBarColor = Color.Transparent.toArgb()
window.navigationBarColor = Color.Transparent.toArgb()
}
}
此外,还可以添加这一行以使导航栏透明:
window.navigationBarColor = Color.Transparent.toArgb()
https://stackoverflow.com/questions/73756866
复制相似问题