HarmonyOS 鸿蒙Next如何获取顶部状态栏高度以及底部导航区域高度

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何获取顶部状态栏高度以及底部导航区域高度

如何获取顶部状态栏高度以及底部导航区域高度

3 回复
当前window提供API获取系统区域包括导航栏和状态栏。

API:getWindowAvoidArea

代码示例:

window.getLastWindow(getContext(this), (error, topWindow) => {

if (topWindow) {

let area = topWindow.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM);

//注意:返回的是px值,如果要用vp值需要转换

this.statusBarHeight = px2vp(area.topRect.height);

this.naviBarHeight = px2vp(area.bottomRect.height);

}

});

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-window-0000001820880785#ZH-CN_TOPIC_0000001820880785__getwindowavoidarea9

这个demo只是我帮您找的示例哈。

目前一共有5种枚举类型,看您自己的需求,以文档为基准使用就可以了。

更多关于HarmonyOS 鸿蒙Next如何获取顶部状态栏高度以及底部导航区域高度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,获取顶部状态栏高度以及底部导航区域高度的方法如下:

首先,需导入ArkUI的window模块。然后,通过window.getLastWindow方法获取当前窗口的实例。接着,调用当前窗口实例的getWindowAvoidArea方法,并传入相应的枚举类型作为参数。

具体步骤如下:

  1. 获取顶部状态栏高度:

    • 调用getWindowAvoidArea方法时,传入window.AvoidAreaType.TYPE_SYSTEM作为参数,以获取包含状态栏和导航栏的系统规避区域。
    • 从返回的规避区域对象中,读取topRect.height属性,该属性即为系统状态栏的高度。
  2. 获取底部导航区域高度:

    • 同样调用getWindowAvoidArea方法,但传入window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR作为参数,以获取导航条避让区域。
    • 从返回的规避区域对象中,读取bottomRect.height属性,该属性即为底部导航区域的高度。

请注意,getWindowAvoidArea方法返回的高度值是以像素(px)为单位的,如果需要使用其他单位(如vp),则需要进行单位转换。

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

回到顶部