HarmonyOS 鸿蒙Next 获取底部安全区域高度 而非底部导航条高度
HarmonyOS 鸿蒙Next 获取底部安全区域高度 而非底部导航条高度
const navIndicatorHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR).bottomRect.height
通过以上方法 可以获得底部导航条高度 但是与底部的安全区域高度有差异, 请问如何正确获取底部安全区域高度?
更多关于HarmonyOS 鸿蒙Next 获取底部安全区域高度 而非底部导航条高度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
获取布局避让遮挡的区域
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
类,它允许你获取屏幕各个边缘的安全区域信息。你可以通过此类来查询底部安全区域的高度。
-
获取WindowInsetsController实例: 首先,你需要获取当前窗口的
WindowInsetsController
实例。这通常可以通过你的Component
或Ability
的上下文来实现。 -
查询底部安全区域高度: 使用
WindowInsetsController
的getInsets()
方法,可以获取一个WindowInsets
对象,该对象包含了屏幕边缘的安全区域信息。你可以通过WindowInsets
的getDisplayInsets()
方法获取具体的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