首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jetpack组合:不能使statusBar完全透明

Jetpack组合:不能使statusBar完全透明
EN

Stack Overflow用户
提问于 2022-09-17 17:02:01
回答 2查看 96关注 0票数 0

我有一个屏幕,其中包含一个地图,我想使一个statusBar完全透明。

我试过的是:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
WindowCompat.setDecorFitsSystemWindows(window, false)
window.setFlags(
    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
)

我想看到一个类似Google地图的结果,但是现在我的statusBar变成了白色灰色而不是透明的。

我如何解决这个问题并使我的statusBar透明?

EN

Stack Overflow用户

发布于 2022-11-27 20:59:51

不需要任何额外的依赖关系。

在撰写主题(或直接在活动中)中,设置如下:

代码语言:javascript
运行
复制
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()
    }
}

此外,还可以添加这一行以使导航栏透明:

代码语言:javascript
运行
复制
window.navigationBarColor = Color.Transparent.toArgb()
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73756866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档