HarmonyOS 鸿蒙Next 如何设置应用为沉浸式窗口

HarmonyOS 鸿蒙Next 如何设置应用为沉浸式窗口

我想要我的鸿蒙应用能够实现沉浸式体验,隐藏状态栏和导航栏。请问我该如何设置窗口以实现这种效果?

2 回复

要在鸿蒙应用中实现沉浸式体验,隐藏状态栏和导航栏,您可以按照以下步骤操作:

获取应用主窗口 : 首先,您需要获取当前应用的主窗口对象。这可以通过调用getMainWindow接口实现。以下是如何获取主窗口的示例代码:

import { window } from '[@kit](/user/kit).ArkUI';

let windowClass: window.Window | undefined = undefined;

window.getMainWindow((err, data) => {

    if (err.code) {

        console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err));

        return;

    }

    windowClass = data;

    console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data));

});

设置窗口为沉浸式 : 实现沉浸式效果有两种主要方式:

方式一 :直接隐藏导航栏和状态栏 。这可以通过调用setWindowSystemBarEnable接口实现,设置这些栏不显示。以下是示例代码:

let names = []; // 这里可以指定要隐藏的系统栏名称

windowClass.setWindowSystemBarEnable(names, (err) => {

    if (err.code) {

        console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));

        return;

    }

    console.info('Succeeded in setting the system bar to be visible.');

});

方式二 :设置窗口为全屏布局,并调整系统栏的透明度和颜色等属性以保持与主窗口的一致性。这涉及到setWindowLayoutFullScreen和setWindowSystemBarProperties两个接口的使用。以下是相关的示例代码:

let isLayoutFullScreen = true;

windowClass.setWindowLayoutFullScreen(isLayoutFullScreen, (err) => {

    if (err.code) {

        console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));

        return;

    }

    console.info('Succeeded in setting the window layout to full-screen mode.');

});

加载显示沉浸式窗口的内容 : 最后,您需要通过loadContent接口加载沉浸式窗口的具体内容。这是完成沉浸式设置的最后一步。

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkui-214-V5

更多关于HarmonyOS 鸿蒙Next 如何设置应用为沉浸式窗口的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,设置应用为沉浸式窗口可以通过以下步骤实现:

  1. 获取应用主窗口

    • 在EntryAbility的onWindowStageCreate方法中,通过windowStage获取应用的主窗口。
  2. 设置沉浸式布局

    • 使用setWindowLayoutFullScreen方法将窗口设置为全屏布局,参数为true表示沉浸式布局,此时布局将不避让状态栏与导航栏,组件可能会与其重叠。
  3. 调整系统栏属性(可选)

    • 若需要,可通过setWindowSystemBarProperties方法调整状态栏和导航栏的颜色、文字颜色等属性,以实现更好的沉浸式效果。
  4. 处理UI元素避让

    • 考虑到沉浸式布局下UI元素可能与状态栏或导航栏重叠,应使用getWindowAvoidArea方法获取状态栏和导航栏的高度,并对UI元素进行相应的避让处理。
  5. 加载目标页面

    • 在设置好沉浸式窗口后,通过windowStage的loadContent方法加载对应的目标页面。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!