如何在jetpack compose中的安全区域上绘画?

bar*_*633 2 android android-jetpack-compose

我也尝试用渐变绘制深蓝色区域。

我基本上是在寻找ignoreSafeArea(iOS SwiftUI)

相当于 Jetpack Compose。我可以尝试用与渐变相同的蓝色阴影来绘制该条,但我认为这不是最好的解决方案。

我尝试过改变appBar颜色,但结果不是我想要的。

Ste*_*one 5

这个栏就是 Android状态栏
要在 Jetpack Compose 中更改其颜色,您可以使用 Google Accompanist库,特别是System UI Controller

系统 UI 控制器提供了易于使用的实用程序,用于更新 Jetpack Compose 中的系统 UI 栏颜色。

具体来说是setSystemBarsColorsetStatusBarColor函数。

systemUiController.setStatusBarsColor(
    color = Color.Transparent, //set your color here
    darkIcons = true
)
Run Code Online (Sandbox Code Playgroud)

然后,要在状态栏区域下绘制,您可以WindowCompat使用MainActivity

WindowCompat.setDecorFitsSystemWindows(window, false)

setContent {
    MyApp(
      ...
    )
}
Run Code Online (Sandbox Code Playgroud)

为了防止内容(如 AppBar)进入系统图标下方,我通过设置一个带有从 Accompanist Scaffold 传递的顶部填充的 Box 来使用Inset-aware 布局。

Box(Modifier.padding(top = contentPadding.calculateTopPadding())) {
   // my app content
}
Run Code Online (Sandbox Code Playgroud)