getWindowAvoidArea方法简介

获取当前窗口内容规避的区域;如系统栏区域、刘海屏区域、手势区域、软键盘区域等与窗口内容重叠时,需要窗口内容避让的区域。
该接口一般适用于两种场景:

  • 在onWindowStageCreate方法中,获取应用启动时的初始布局避让区域时可调用该接口;
  • 当应用内子窗需要临时显示,对显示内容做布局避让时可调用该接口。

AvoidAreaType

表示规避区域的类型
在这里插入图片描述

AvoidArea

在这里插入图片描述

获取状态栏和底部导航栏代码


  onWindowStageCreate(windowStage: window.WindowStage): void {
    this.getStatusBarInfo(windowStage)
  }

   getStatusBarInfo(windowStage:window.WindowStage):void{
     let mainWindow:window.Window = windowStage.getMainWindowSync();
     let type = window.AvoidAreaType.TYPE_SYSTEM;
     let area = mainWindow.getWindowAvoidArea(type);
     // 获取顶部的刘海屏高度,单位:px
     let statusBarHeight = area.topRect.height;

     type = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR;
     // 获取底部手势区域高度,单位:px
     area = mainWindow.getWindowAvoidArea(type);
     let navigationHeight = area.bottomRect.height
  }

参考资料

getWindowAvoidArea
@ohos.arkui.uiExtension (uiExtension)
AvoidAreaType
AvoidArea7+

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐