enableEdgeToEdge
enableEdgeToEdge(
statusBarStyle = SystemBarStyle.light(
Color.TRANSPARENT,
Color.TRANSPARENT
),
navigationBarStyle = SystemBarStyle.light(
Color.TRANSPARENT,
Color.TRANSPARENT
)
)
1. enableEdgeToEdge()
- Jetpack Compose 提供的 API,用于让 应用的 UI 扩展到整个屏幕(包括状态栏、导航栏),这样 UI 可以全屏显示,而不会被系统栏遮挡。
- 适用于 沉浸式体验(如全屏播放、透明状态栏)。
2. statusBarStyle = SystemBarStyle.light(...)
SystemBarStyle.light(...)
表示亮色模式,通常用于 深色状态栏文字和图标。Color.TRANSPARENT, Color.TRANSPARENT
:- 第一个参数:状态栏背景颜色(这里是透明)。
- 第二个参数:状态栏 Scrim 颜色(一般用于半透明遮罩效果,这里也是透明)。
3. navigationBarStyle = SystemBarStyle.light(...)
- 设置导航栏样式,原理与
statusBarStyle
相同,使导航栏透明,并适配浅色背景。
适用场景
- 全屏 UI 设计
- 透明状态栏/导航栏
- 沉浸式体验(Immersive Mode)
如果希望 让内容不被状态栏/导航栏遮挡,可以 给根布局添加 padding
:
Box(
modifier = Modifier.fillMaxSize().padding(WindowInsets.statusBars.asPaddingValues())
) {
// UI 内容
}
这样可以保证 UI 不会和状态栏/导航栏的内容重叠。