1.2K Star 6.3K Fork 5.4K

OpenHarmony / docs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
faqs-window-manager.md 1.62 KB
一键复制 编辑 原始数据 按行查看 历史
zengyawen 提交于 2023-04-23 15:05 . update docs

窗口管理开发常见问题

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

适用于OpenHarmony 3.2 Beta5 API 9

解决措施

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

代码示例

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

/**
 * 设置沉浸式窗口,并获取状态栏和导航栏高度
 * @param mainWindow 主窗口对象
 */
async function enterImmersion(mainWindow: window.Window) { 
  mainWindow.on("systemBarTintChange", (data) => {
    let avoidAreaRect = data.regionTint[0].region; //data.regionTint是个数组,包含状态栏、导航栏的矩形区域坐标。
  })
  await mainWindow.setFullScreen(true)
  await mainWindow.setSystemBarEnable(["status", "navigation"])
  await mainWindow.systemBarProperties({
    navigationBarColor: "#00000000",
    statusBarColor: "#00000000",
    navigationBarContentColor: "#FF0000",
    statusBarContentColor: "#FF0000"
  })
}
export default class MainAbility extends Ability {
  // do something
  async onWindowStageCreate(windowStage: window.WindowStage) {
    let mainWindow = await windowStage.getMainWindow()
    await enterImmersion(mainWindow)
    windowStage.loadContent('pages/index')
  }
  // do something
}

应用如何设置隐藏顶部的状态栏

适用于OpenHarmony 3.2 Beta5 API 9

解决措施

在UIAbility的onWindowStageCreate的生命周期中设置setWindowSystemBarEnable接口即可。

代码示例

onWindowStageCreate(windowStage){
  windowStage.getMainWindowSync().setWindowSystemBarEnable([])
  ......
}

参考链接

窗口基础能力文档

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
其他
1
https://gitee.com/openharmony/docs.git
git@gitee.com:openharmony/docs.git
openharmony
docs
docs
OpenHarmony-3.2-Release

搜索帮助

344bd9b3 5694891 D2dac590 5694891