HarmonyOS 鸿蒙Next如何获取底部安全区高度

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

HarmonyOS 鸿蒙Next如何获取底部安全区高度

无法获取底部安全区高度
let area:window.AvoidArea = windowStage.getMainWindowSync().getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR)
根据以上代码获取的是91,这个不对吧?

4 回复
参考代码如下:

// 获取布局避让遮挡的区域

let type = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR; // 以导航条避让为例

let avoidArea = windowClass.getWindowAvoidArea(type);

let bottomRectHeight = avoidArea.bottomRect.height; // 获取到导航条区域的高度

let height = px2vp(bottomRectHeight)

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-pixel-units-V5

链接貌似有问题

onWindowStageCreate方法中添加

    // 获取应用主窗口
    let windowClass: window.Window = windowStage.getMainWindowSync();
    // 以导航条避让为例
    let type = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR;
    let avoidArea = windowClass.getWindowAvoidArea(type);
    // 获取到导航条区域的高度
    let bottomRectHeight = avoidArea.bottomRect.height;
    console.log("bottomRectHeight: " + bottomRectHeight) 

作为IT专家,对于HarmonyOS 鸿蒙Next如何获取底部安全区高度的问题,以下是专业解答:

在HarmonyOS鸿蒙Next中,要获取底部安全区高度,可以通过原生API来实现。具体步骤如下:

  1. 使用window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR来指定需要获取避让区域的类型。
  2. 调用windowClass.getWindowAvoidArea(type)方法获取该类型的避让区域信息。
  3. 从返回的避让区域信息中提取bottomRect.height,即底部安全区的高度。注意,这个值通常以像素(px)为单位,可能需要转换为视口单位(vp)以便在UI布局中使用。

示例代码如下:

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

这段代码会打印出底部安全区的高度。如果在实现过程中遇到问题,请检查API调用是否正确,以及避让区域类型是否指定得当。

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

回到顶部