HarmonyOS 鸿蒙Next开发案例 | 沉浸式界面实现方式之三:隐藏状态栏/导航栏方式
HarmonyOS 鸿蒙Next开发案例 | 沉浸式界面实现方式之三:隐藏状态栏/导航栏方式
场景说明
沉浸式界面通常是指全屏显示,即当前画面占据整个屏幕。画面放大的同时,让用户摆脱无关信息的干扰,带给用户沉浸式的体验。常见的场景有:视频播放、游戏等。本例即为大家介绍如何沟通隐藏状态栏/导航栏开发沉浸式界面。
效果呈现
本例中的沉浸式界面对应效果如下:
运行环境
本例基于以下环境开发,开发者也可以基于其他适配的版本进行开发:
- IDE: DevEco Studio 3.1.1 Release
- SDK: 3.1.0(API 9)
实现思路
使用setWindowSystemBarEnable设置导航栏和状态栏为隐藏状态。
说明: 沉浸式的设置最好放在ability的onWindowStageCreate的生命周期里,此时刚好可以获取窗口的信息,放在页面页面生命周期里会出现窗口大小不一致,影响体验。
开发步骤
隐藏状态栏、导航栏可以达到完全沉浸的效果,使用setWindowSystemBarEnable接口即可实现。
具体代码如下:
import window from '@ohos.window';
import common from '@ohos.app.ability.common';
@Entry
@Component
struct Type3 {
@State message: string = ‘Hello World’
context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext
async setSystemBar() {
let windowClass = await window.getLastWindow(context)
//设置导航栏,状态栏不可见
await windowClass.setWindowSystemBarEnable([])
}
aboutToAppear() {
this.setSystemBar()
}
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width(‘100%’)
}
.backgroundColor("#ffee33")
.height(‘100%’)
}
}
windowClass.setWindowSystemBarEnable([‘status’])
针对您提出的“HarmonyOS 鸿蒙Next开发案例 | 沉浸式界面实现方式之三:隐藏状态栏/导航栏方式”的问题,以下为实现该功能的专业解答:
在HarmonyOS鸿蒙Next开发中,实现沉浸式界面的一种有效方式是隐藏状态栏和导航栏。这通常通过调用系统提供的API来完成。具体步骤如下:
- 获取窗口对象:首先,需要获取当前应用的窗口对象,这可以通过调用
window.getLastWindow(context)
实现。 - 设置隐藏状态栏和导航栏:接着,使用
setWindowSystemBarEnable([])
方法将状态栏和导航栏设置为隐藏状态。此方法接受一个数组参数,若传入空数组则表示隐藏所有系统栏。 - 生命周期管理:建议在
ability
的onWindowStageCreate
生命周期中设置沉浸式界面,因为此时可以获取到窗口的完整信息,从而确保沉浸式效果的一致性。
通过以上步骤,即可在HarmonyOS鸿蒙Next应用中实现隐藏状态栏和导航栏的沉浸式界面。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。