• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 窗口管理开发常见问题
2
3## 如何获取状态栏和导航栏高度
4
5适用于OpenHarmony 3.2 Beta5  API 9
6
7**解决措施**
8
9在加载窗口内容之前,采用systemAvoidAreaChange事件监听。
10
11**代码示例**
12
13```
14// MainAbility.ts
15import window from '@ohos.window';
16
17/**
18 * 设置沉浸式窗口,并获取状态栏和导航栏高度
19 * @param mainWindow 主窗口对象
20 */
21async function enterImmersion(mainWindow: window.Window) {
22  mainWindow.on("systemBarTintChange", (data) => {
23    let avoidAreaRect = data.regionTint[0].region; //data.regionTint是个数组,包含状态栏、导航栏的矩形区域坐标。
24  })
25  await mainWindow.setFullScreen(true)
26  await mainWindow.setSystemBarEnable(["status", "navigation"])
27  await mainWindow.systemBarProperties({
28    navigationBarColor: "#00000000",
29    statusBarColor: "#00000000",
30    navigationBarContentColor: "#FF0000",
31    statusBarContentColor: "#FF0000"
32  })
33}
34export default class MainAbility extends Ability {
35  // do something
36  async onWindowStageCreate(windowStage: window.WindowStage) {
37    let mainWindow = await windowStage.getMainWindow()
38    await enterImmersion(mainWindow)
39    windowStage.loadContent('pages/index')
40  }
41  // do something
42}
43```
44
45## 应用如何设置隐藏顶部的状态栏
46
47适用于OpenHarmony 3.2 Beta5  API 9
48
49**解决措施**
50
51在UIAbility的onWindowStageCreate的生命周期中设置setWindowSystemBarEnable接口即可。
52
53**代码示例**
54
55```
56onWindowStageCreate(windowStage){
57  windowStage.getMainWindowSync().setWindowSystemBarEnable([])
58  ......
59}
60```
61
62**参考链接**
63
64[窗口基础能力文档](../reference/apis/js-apis-window.md)
65
66