如何解决首次打开APP偶现状态栏高度获取过高的问题

首次打开APP偶尔会出现(电量时间)状态栏高度获取过高的问题,杀后台后二次进入正常。状态栏正确高度为:38.86vp,获取的错误高度为:136.00vp

HarmonyOS
2024-06-11 23:41:39
浏览
已于2024-6-12 23:57:09修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
QW_MA

可能是loadContent和getMainWindow回调时序不一致造成。参考代码:

windowStage.loadContent('pages/Page4', (err, data) => { 
  if (err.code) { 
    hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 
    return; 
  } 
  let mainWindow = windowStage.getMainWindowSync(); 
  mainWindow.setWindowLayoutFullScreen(true); 
  try { 
    mainWindow.on("avoidAreaChange", (data) => { 
      if (data.type === window.AvoidAreaType.TYPE_SYSTEM) { 
        let avoidHeight = data.area.topRect.height; 
        AppStorage.setOrCreate("topHeight", px2vp(avoidHeight)); 
      } 
    }) 
  } catch (exception) { 
    console.log(JSON.stringify(exception)) 
  } 
  let type = window.AvoidAreaType.TYPE_SYSTEM; 
  let avoidArea = mainWindow.getWindowAvoidArea(type); 
  let avoidHeight = avoidArea.topRect.height; 
  AppStorage.setOrCreate("topHeight", px2vp(avoidHeight)); 
 
  hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); 
})
分享
微博
QQ
微信
回复
2024-06-12 23:55:33
相关问题
获取状态栏与导航高度
506浏览 • 1回复 待解决
HarmonyOS 如何获取系统状态栏高度
655浏览 • 1回复 待解决
鸿蒙如何获取导航状态栏高度
11248浏览 • 1回复 待解决
沉侵式状态栏获取状态栏高度为0
282浏览 • 1回复 待解决
HarmonyOS 如何获取状态栏高度
437浏览 • 1回复 待解决
状态栏高度怎么获取
9566浏览 • 3回复 待解决
获取状态栏高度方法
1870浏览 • 1回复 待解决
如何获取状态栏与导航高度
13浏览 • 0回复 待解决
如何获取状态栏和导航高度
2829浏览 • 1回复 待解决
求大佬告知如何获取状态栏高度
2185浏览 • 1回复 待解决
如何获取系统导航状态栏高度
690浏览 • 1回复 待解决
HarmonyOS API获取状态栏高度
208浏览 • 1回复 待解决
状态栏和底部触控高度获取
626浏览 • 2回复 待解决
获取状态栏高度等方法
7968浏览 • 1回复 待解决
有谁知道如何获取状态栏高度
2149浏览 • 1回复 待解决