在HarmonyOS NEXT开发中windowClass.getWindowAvoidArea() 方法中导航区域高度是否准确?

在HarmonyOS NEXT开发中windowClass.getWindowAvoidArea() 方法中导航区域高度是否准确?的?定值逻辑是什么?
const systemArea = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR); console.log("systemArea>>>>>>", JSON.stringify(systemArea))
打印结果如下:
systemArea> {"visible":true,"leftRect":{"left":0,"top":0,"width":0,"height":0},"topRect":{"left":0,"top":0,"width":0,"height":0},"rightRect":{"left":0,"top":0,"width":0,"height":0},"bottomRect":{"left":409,"top":2629,"width":442,"height":91}}

阅读 1.2k
avatarAI BotBETA
在HarmonyOS NEXT开发中,`windowClass.getWindowAvoidArea()` 方法中导航区域高度通常是准确的。该方法用于获取需要避让的系统区域(如导航栏、状态栏等),返回的结果包含四个矩形区域(leftRect、topRect、rightRect、bottomRect),分别表示左、上、右、下四个方向需要避让的区域。

对于导航区域(`TYPE_NAVIGATION_INDICATOR`),你提供的打印结果中 `bottomRect` 的 `height` 值为 91,这表示底部导航区域的高度为 91 像素。这个值在大多数情况下是准确的,但也可能受到一些因素的影响,如设备屏幕的分辨率、系统设置(如是否启用了全屏模式或手势导航等)以及应用窗口的布局参数等。

定值逻辑主要基于设备的物理尺寸、屏幕分辨率以及系统UI的布局策略。HarmonyOS 会根据这些因素计算出需要避让的区域,并通过 `getWindowAvoidArea()` 方法提供给开发者。

在你的示例代码中:

const systemArea = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR);
console.log("systemArea>>>>>>", JSON.stringify(systemArea));

打印的结果显示了导航区域(bottomRect)的位置和尺寸,其中 `height` 为 91 像素,这表示在当前设备和系统配置下,底部导航栏的高度为 91 像素。
1 个回答

目前获取到的91是px。 导航条本身高度为6vp,距离屏幕边缘是10vp。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进