Jetpack Compose 实现沉浸式效果
时间: 2024-03-24 13:36:40 浏览: 231
Jetpack Compose入门到精通
要在 Jetpack Compose 中实现沉浸式效果,可以使用 System UI Controller API 来控制状态栏和导航栏的可见性和颜色。
首先,需要在 AndroidManifest.xml 文件中设置主题为 NoActionBar,这样可以去除默认的 ActionBar,从而实现更好的沉浸式效果。
接下来,在 Composable 中使用 SystemUiController API 来控制状态栏和导航栏的可见性和颜色。例如,要隐藏状态栏和导航栏,可以使用以下代码:
```kotlin
val systemUiController = rememberSystemUiController()
systemUiController.isStatusBarVisible = false
systemUiController.isNavigationBarVisible = false
```
要设置状态栏和导航栏的颜色,可以使用以下代码:
```kotlin
val systemUiController = rememberSystemUiController()
systemUiController.setStatusBarColor(Color.Transparent, darkIcons = false)
systemUiController.setNavigationBarColor(Color.Transparent)
```
这里的 darkIcons 参数表示状态栏图标和文字是否使用深色,如果设置为 true,则状态栏图标和文字会使用深色,否则使用浅色。
需要注意的是,System UI Controller API 只在 Android 11 及以上版本中可用,如果要在更早的版本中实现沉浸式效果,可以使用 SystemBarStyle API 或者自定义 View 来实现。
阅读全文