HarmonyOS 鸿蒙Next 获取底部安全区域高度 而非底部导航条高度

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

HarmonyOS 鸿蒙Next 获取底部安全区域高度 而非底部导航条高度

//导航条高度
const navIndicatorHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR).bottomRect.height
通过以上方法 可以获得底部导航条高度 但是与底部的安全区域高度有差异, 请问如何正确获取底部安全区域高度?

 


更多关于HarmonyOS 鸿蒙Next 获取底部安全区域高度 而非底部导航条高度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
获取屏幕底部安全区的高度,示例代码如下:
获取布局避让遮挡的区域
let type = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR; // 以导航条避让为例
let avoidArea = windowClass.getWindowAvoidArea(type);
// 此处获取的单位为px,需转为vp
let bottomRectHeight = px2vp(avoidArea.bottomRect.height); // 获取到导航条区域的高度
console.log("bottomRectHeight is " + bottomRectHeight); 

参考文档:
获取避让区域:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-0000001820880785#ZH-CN_TOPIC_0000001820880785__getwindowavoidarea9
避让区域类型:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-0000001820880785#ZH-CN_TOPIC_0000001820880785__avoidareatype7

更多关于HarmonyOS 鸿蒙Next 获取底部安全区域高度 而非底部导航条高度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,获取底部安全区域高度而非底部导航条高度的操作,可以通过以下方式实现:

鸿蒙系统提供了WindowInsetsController类,它允许你获取屏幕各个边缘的安全区域信息。你可以通过此类来查询底部安全区域的高度。

  1. 获取WindowInsetsController实例: 首先,你需要获取当前窗口的WindowInsetsController实例。这通常可以通过你的ComponentAbility的上下文来实现。

  2. 查询底部安全区域高度: 使用WindowInsetsControllergetInsets()方法,可以获取一个WindowInsets对象,该对象包含了屏幕边缘的安全区域信息。你可以通过WindowInsetsgetDisplayInsets()方法获取具体的Rect对象,该对象表示安全区域的边界。然后,你可以通过Rect对象的bottom属性来获取底部安全区域的高度。

示例代码如下:

WindowInsetsController insetsController = getWindow().getWindowInsetsController();
WindowInsets insets = insetsController.getInsets();
Rect displayInsets = insets.getDisplayInsets();
int bottomInset = displayInsets.bottom;

注意:上述代码中的类和方法是基于鸿蒙系统API的假设,并非实际Java代码,而是鸿蒙特有的API调用方式。你需要根据鸿蒙系统的实际API文档进行调整。

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

回到顶部