如何获取navigationBar高度?HarmonyOS 鸿蒙Next

如何获取navigationBar高度?HarmonyOS 鸿蒙Next 如何获取navigationBar高度?

2 回复

目前只能获取到状态栏,也就是避让区域的高度:

let type = window.AvoidAreaType.TYPE_SYSTEM; // 以状态栏避让为例
avoidArea = windowClass.getWindowAvoidArea(type);
let topRectHeight = avoidArea.topRect.height; // 获取状态栏区域高度    
AppStorage.setOrCreate('topRectHeight', topRectHeight);

不过通过查看模拟器图层可以发现,导航栏红色区域的高度是182px,我换了两个不同的设备都是182px,或许你可以使用

px2vp(182)+topRectHeight来计算整个导航栏的高度

更多关于如何获取navigationBar高度?HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS中,获取navigationBar的高度可以通过Window类和WindowManager类来实现。首先,使用WindowManager获取当前窗口的实例,然后通过Window类的getWindowSystemContext方法获取系统上下文,最后通过WindowSystemContext类的getNavigationBarHeight方法获取navigationBar的高度。具体代码如下:

import window from '@ohos.window';

let windowClass = window.getLastWindow(this.context);
let windowManager = windowClass.getWindowManager();
let windowSystemContext = windowManager.getWindowSystemContext();
let navigationBarHeight = windowSystemContext.getNavigationBarHeight();
console.log(\`NavigationBar height: \${navigationBarHeight}\`);

这段代码首先获取当前窗口的实例,然后通过窗口管理器获取系统上下文,最后从系统上下文中提取navigationBar的高度并打印出来。

回到顶部