HarmonyOS鸿蒙Next中如何获取设备的状态栏高度?

HarmonyOS鸿蒙Next中如何获取设备的状态栏高度? 如何获取设备的状态栏高度?获取到的高度的单位是什么?

3 回复

获取系统状态栏和导航栏等规避区域。使用系统提供的 getWindowAvoidArea 获取系统规避区域。返回值中的 topRect.height 即为系统状态栏的高度,单位为 px。

您可以参考一下这个:如何获取状态栏和导航栏高度

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


在HarmonyOS Next中,使用window.getTopWindow()获取窗口对象,再通过getWindowAvoidArea(0)获取状态栏安全区域,其中top属性即为状态栏高度。示例代码:

import window from '@ohos.window';
let windowClass = window.getTopWindow();
let avoidArea = windowClass.getWindowAvoidArea(0);
let statusBarHeight = avoidArea.top;

在HarmonyOS Next中,可以通过getSystemAvoidArea方法获取状态栏高度。具体实现如下:

import window from '@ohos.window';

// 获取窗口实例后调用
let avoidArea = window.getSystemAvoidArea(window.AvoidAreaType.TYPE_SYSTEM);
let statusBarHeight = avoidArea.topRect.height; // 状态栏高度值

获取到的高度单位为虚拟像素(vp),系统会自动根据屏幕密度进行适配转换。该方法返回的是安全区域避开系统UI(如状态栏)的矩形区域信息,其中topRect对应状态栏区域。

注意:需要在UIAbility的onWindowStageCreate回调中获取窗口对象后调用,确保窗口已创建。

回到顶部