沉浸式状态栏导航
一、概念
沉浸式状态栏是一种让应用与系统UI融合的设计手法,通常指状态栏透明或与应用背景色一致,使得应用界面看起来更加统一和流畅。
二、实现沉浸式状态栏的原因
- 提升视觉体验:减少视觉割裂感,增强沉浸感。
- 优化界面空间:隐藏状态栏或透明化状态栏,扩大应用内容区域。
- 减少用户干扰:让用户更专注于应用内容,避免状态栏信息的分散注意力。
- 符合设计趋势:提升应用的现代感与专业性。
三、实现方式
HarmonyOS (ArkTS)
第一步
直接在 入口函数的EntryAbility
里面进行配置,开启全屏显示
// 开启全屏沉浸式导航模式
const win = windowStage.getMainWindowSync()
win.setWindowLayoutFullScreen(true)
// 获取顶部规避区域,并记录到 AppStorage 中
const top = win.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM)
.topRect
AppStorage.setOrCreate<number>('safeTop', px2vp(top.height))
// 获取底部规避区域,并记录到 AppStorage 中
const bottom = win.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR)
.bottomRect
AppStorage.setOrCreate<number>('safeBottom', px2vp(bottom.height))
放的位置:
onWindowStageCreate
看一下前后效果
开启后发现 组件占位被状态栏遮盖,以及下面的导航条,此时接着下一步
第二步
第一步我们不仅开启了全屏显示,其实还做了一件事就是我们获取并储存了顶部和底部的安全距离,
接下来就是在组件里用起来就