如何解决首次打开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
相关问题
HarmonyOS 如何获取状态栏高度
630浏览 • 1回复 待解决
获取状态栏高度方法
1987浏览 • 1回复 待解决
如何获取状态栏和导航高度
2919浏览 • 1回复 待解决
如何获取状态栏与导航高度
247浏览 • 0回复 待解决
获取状态栏与导航高度
647浏览 • 1回复 待解决
HarmonyOS 如何获取手机状态栏高度
177浏览 • 1回复 待解决
HarmonyOS 如何获取系统状态栏高度
838浏览 • 1回复 待解决
沉侵式状态栏获取状态栏高度为0
395浏览 • 1回复 待解决
鸿蒙如何获取导航状态栏高度
11426浏览 • 1回复 待解决
如何获取系统导航状态栏高度
830浏览 • 1回复 待解决
状态栏高度怎么获取
9679浏览 • 3回复 待解决
HarmonyOS API获取状态栏高度
303浏览 • 1回复 待解决
求大佬告知如何获取状态栏高度
2376浏览 • 1回复 待解决
状态栏和底部触控高度获取
905浏览 • 2回复 待解决
获取状态栏高度等方法
8090浏览 • 1回复 待解决
有谁知道如何获取状态栏高度
2247浏览 • 1回复 待解决