• Lv0
    粉丝0

积分186 / 贡献0

提问33答案被采纳3文章0

如何获取状态栏和导航栏高度

汐之蓝 显示全部楼层 发表于 2023-10-13 15:27:32

【问题描述】
最近在做屏幕高度适配时,发现了一些问题,我需要获取高度的大小,分析可使用的区域。如何获取状态栏和导航栏高度?

【运行环境】
硬件:rk3568;  ROM: 3.2  Beta5;  API 9


您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论1

Travill

沙发 发表于 2023-10-16 15:22:04

如何获取状态栏和导航栏高度



在加载窗口内容之前,采用systemAvoidAreaChange事件监听。



  1. // MainAbility.ts
  2. import window from '@ohos.window';

  3. /**
  4. * 设置沉浸式窗口,并获取状态栏和导航栏高度
  5. * @param mainWindow 主窗口对象
  6. */
  7. async function enterImmersion(mainWindow: window.Window) {
  8.   mainWindow.on("systemBarTintChange", (data) => {
  9.     let avoidAreaRect = data.regionTint[0].region; //data.regionTint是个数组,包含状态栏、导航栏的矩形区域坐标。
  10.   })
  11.   await mainWindow.setFullScreen(true)
  12.   await mainWindow.setSystemBarEnable(["status", "navigation"])
  13.   await mainWindow.systemBarProperties({
  14.     navigationBarColor: "#00000000",
  15.     statusBarColor: "#00000000",
  16.     navigationBarContentColor: "#FF0000",
  17.     statusBarContentColor: "#FF0000"
  18.   })
  19. }
  20. export default class MainAbility extends Ability {
  21.   // do something
  22.   async onWindowStageCreate(windowStage: window.WindowStage) {
  23.     let mainWindow = await windowStage.getMainWindow()
  24.     await enterImmersion(mainWindow)
  25.     windowStage.loadContent('pages/index')
  26.   }
  27.   // do something
  28. }
复制代码

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部