OpenHarmony开发者论坛

标题: 如何获取状态栏和导航栏高度 [打印本页]

作者: 汐之蓝    时间: 2023-10-13 15:27
标题: 如何获取状态栏和导航栏高度

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

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



作者: Travill    时间: 2023-10-16 15:22
标题: 如何获取状态栏和导航栏高度


在加载窗口内容之前,采用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. }
复制代码






欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5