And*_*nov 1 android android-statusbar android-jetpack-compose
我有一个屏幕,其中包含一个地图,我想让状态栏完全透明。
我尝试过的:
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()
}
Run Code Online (Sandbox Code Playgroud)
另外,我在setContent调用之前和调用中尝试在 MainActivity 中使用窗口:
WindowCompat.setDecorFitsSystemWindows(window, false)
window.setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
)
Run Code Online (Sandbox Code Playgroud)
我想看到像 Google 地图一样的结果,但现在我的状态栏颜色是白灰色而不是透明
我该如何解决这个问题并使我的状态栏透明?
小智 7
不需要任何额外的依赖项。
在您的 Compose 主题中(或直接在 Activity 中)设置:
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()
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您还可以添加此行以使导航栏透明:
window.navigationBarColor = Color.Transparent.toArgb()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1416 次 |
最近记录: |