HarmonyOS 鸿蒙Next app 底部导航栏高度的问题

HarmonyOS 鸿蒙Next app 底部导航栏高度的问题

使用模拟器,通过下面方法拿状态栏和导航栏的高度时,状态栏高度是有的(126px)。但是底部导航栏高度拿到的值是0。想问一下模拟器底部导航栏高度就是0px?还是需要到真机上才会有返回值?

 windowClass.on("avoidAreaChange", (data) => {
    if (data.type == window.AvoidAreaType.TYPE_SYSTEM) {
      // 将状态栏和导航栏的高度保存在AppStorage中
      AppStorage.setOrCreate("topStatusBarHeight", data.area.topRect.height);
      AppStorage.setOrCreate("bottomNavigationBarHeight", data.area.bottomRect.height);
    }
  })

app需要进行全面屏开发,需要隐藏app的状态栏和底部导航栏。所以需要拿到对应的高度。


更多关于HarmonyOS 鸿蒙Next app 底部导航栏高度的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
获取底部导航条的高度,需要判断data.type === window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR
参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-0000001820880785#ZH-CN_TOPIC_0000001820880785__avoidareatype7

更多关于HarmonyOS 鸿蒙Next app 底部导航栏高度的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


类型入参错了, 应该选导航条区域,手机底部的叫导航条

关于HarmonyOS 鸿蒙Next app底部导航栏高度的问题,以下是一些解决方案:

在HarmonyOS 鸿蒙Next中,底部导航栏高度可以通过编程接口获取。具体地,可以使用window.Window类的getWindowAvoidArea方法,并传入window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR作为参数,来获取底部导航栏的避让区域。然后,通过访问避让区域的bottomRect.height属性,即可获取到底部导航栏的高度(单位为px)。

示例代码如下:

let windowClass = windowStage.getMainWindowSync();
let avoidArea = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR);
let bottomRectHeight = avoidArea.bottomRect.height;
console.log("bottomRectHeight is " + bottomRectHeight);

注意,获取的高度值可能需要根据设备的分辨率和DPI进行转换,以确保在不同设备上的一致性。

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

回到顶部