HarmonyOS:获取屏幕顶部状态栏、底部导航栏和导航条的高度

获取屏幕顶部状态栏、底部导航栏和导航条的高度
可以使用window的getWindowAvoidArea方法获取

测试结果图

示例TestGetWindowAvoidArea.ets文件代码

typescript 复制代码
import { window } from '@kit.ArkUI'
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct TestGetWindowAvoidArea {
  @State message: string = '获取屏幕顶部状态栏、底部导航栏和导航条的高度';

  getAvoidAreaHeight() {
    let type1 = window.AvoidAreaType.TYPE_SYSTEM;
    let type2 = window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR;
    window.getLastWindow(getContext(this)).then((data) => {
      // 获取系统默认区域,一般包括状态栏、导航栏
      let avoidArea1 = data.getWindowAvoidArea(type1);
      // 顶部状态栏高度
      let statusBarHeight = avoidArea1.topRect.height;
      // 底部导航栏高度
      let bottomNavHeight = avoidArea1.bottomRect.height;
      // 获取导航条区域
      let avoidArea2 = data.getWindowAvoidArea(type2);
      // 获取到导航条区域的高度
      let indicatorHeight = avoidArea2.bottomRect.height;
      console.info(`屏幕顶部状态栏 statusBarHeight = ${statusBarHeight}`);
      console.info(`底部导航栏 bottomNavHeight = ${bottomNavHeight}`);
      console.info(`导航条的高度 indicatorHeight = ${indicatorHeight}`);
    }).catch((err: BusinessError) => {
      console.error(`获取屏幕顶部状态栏、底部导航栏和导航条的高度 出现异常 Failed to obtain the window. Cause: ${JSON.stringify(err)}`);
    });
  }

  build() {
    Column({ space: 10 }) {
      Text(this.message)
        .id('TestGetWindowAvoidAreaHelloWorld')
        .fontSize(20)
        .fontWeight(FontWeight.Bold)
        .onClick(() => {
          this.getAvoidAreaHeight()
        })

    }
    .height('100%')
    .width('100%')
  }
}
相关推荐
程序员老刘10 分钟前
4:2:1!老刘的三季度项目报告
flutter·harmonyos·客户端
深盾科技21 分钟前
鸿蒙应用构建体系深度解析:ABC、HAP、HAR、HSP与APP的技术全貌
华为·harmonyos
大师兄666824 分钟前
HarmonyOS新闻卡片组件开发实战:自定义组件与List渲染深度解析
移动开发·harmonyos·自定义组件·组件通信·分类筛选·新闻卡片·list渲染
晴殇i5 小时前
关于前端基础快速跨入鸿蒙HarmonyOS开发
前端·harmonyos
ChinaDragon6 小时前
HarmonyOS:弹出框控制器
harmonyos
金鸿客6 小时前
鸿蒙Text文本设置选中菜单和AI菜单
harmonyos
特立独行的猫a12 小时前
鸿蒙PC平台三方库移植实战:以libid3tag库为例(附完整移植流程)
华为·harmonyos·移植·鸿蒙pc·libid3tag
爱笑的眼睛1117 小时前
深入探讨HarmonyOS分布式剪贴板:技术原理与开发实践
华为·harmonyos
特立独行的猫a18 小时前
鸿蒙PC平台三方库移植实战:以libogg库移植为例(附完整移植流程与工具链配置)
华为·harmonyos·三方库移植·鸿蒙pc·libogg
爱笑的眼睛1118 小时前
深入理解HarmonyOS通知渠道与优先级设置:从基础到高级实践
华为·harmonyos