鸿蒙在界面设置为全面屏时如果获取底部虚拟导航的高度HarmonyOS 鸿蒙Next

鸿蒙在界面设置为全面屏时如果获取底部虚拟导航的高度HarmonyOS 鸿蒙Next

this.window.setWindowLayoutFullScreen(true)时,需要获取到底部虚拟手势区域,将整体界面距离底部一定距离,如何获取这块区域的高度

2 回复

可以使用getWindowAvoidArea接口获取,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-window-V13

更多关于鸿蒙在界面设置为全面屏时如果获取底部虚拟导航的高度HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙系统中,当界面设置为全面屏时,获取底部虚拟导航栏的高度可以通过WindowManager类中的getWindowInsets()方法实现。具体步骤如下:

  1. 使用WindowManager获取当前窗口的WindowInsets对象。
  2. 通过WindowInsets对象的getSystemWindowInsets()方法获取系统窗口的边距信息,其中包括底部虚拟导航栏的高度。

示例代码如下:

import window from '@ohos.window';

let windowClass = window.getLastWindow(this.context);
windowClass.on('systemBarTintChange', () => {
    let windowInsets = windowClass.getWindowInsets();
    let systemWindowInsets = windowInsets.getSystemWindowInsets();
    let bottomInset = systemWindowInsets.bottom;
    console.log('Bottom Navigation Height: ' + bottomInset);
};

这段代码通过监听systemBarTintChange事件,获取窗口的WindowInsets,并从中提取底部虚拟导航栏的高度。bottomInset即为底部虚拟导航栏的高度值。

回到顶部