如何获取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
的高度并打印出来。