HarmonyOS 鸿蒙Next window的上下安全区域的高度如何获取

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

HarmonyOS 鸿蒙Next window的上下安全区域的高度如何获取

需要控制是否可以在状态栏区域后添加视图。我设置了
windowClass.setWindowLayoutFullScreen(true).但是 整个app的状态和底部安全区都没有了。我想要知道 底部安全区的高度,与状态栏的高度。
另外,如果app中 有些页面是需要全屏,而有些页面不需要全屏,这种情况下是统一设为全屏,然后通过 设置padding来 调整安全区的高度 是这样操作吗
 


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

2 回复
1、当前window提供API获取系统区域包括导航栏和状态栏,你可自行查阅文档。

API:getWindowAvoidArea

参考链接:@ohos.window (窗口)-图形图像-ArkTS API-ArkUI(方舟UI框架)-应用框架 - 华为HarmonyOS开发者

2、有些页面需要全屏,有些不需要全屏的情况,可全局设置setWindowLayoutFullScreen(true),然后不需要全屏的界面的自己添加margin,手动添加对头部和导航条的距离。

具体参考链接:@ohos.window (窗口)-图形图像-ArkTS API-ArkUI(方舟UI框架)-应用框架 - 华为HarmonyOS开发者

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


在HarmonyOS中,要获取Next window的上下安全区域(即状态栏和导航栏的高度),可以通过访问系统提供的窗口布局参数来实现。具体步骤如下:

  1. 获取WindowInsets: 使用WindowInsets对象来获取窗口的上下安全区域。WindowInsets提供了关于窗口布局边界的信息,包括状态栏和导航栏的高度。

  2. 调用getWindowInsets(): 在组件(如Activity或自定义View)中,调用getWindowInsets()方法获取WindowInsets实例。

  3. 获取显示区域: 通过WindowInsetsgetDisplayCutout()方法获取DisplayCutout对象,该对象包含了屏幕被遮挡的区域信息。对于上下安全区域,可以分别通过getDisplayCutout().getSafeInsetTop()getDisplayCutout().getSafeInsetBottom()获取顶部和底部安全区域的高度。

示例代码片段(伪代码):

val windowInsets = getWindowInsets()
val displayCutout = windowInsets?.displayCutout
val topInset = displayCutout?.safeInsetTop ?: 0
val bottomInset = displayCutout?.safeInsetBottom ?: 0

上述代码将获取当前窗口的上下安全区域高度。

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

回到顶部