如何解决首次打开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
相关问题
如何获取状态栏和导航高度
1266浏览 • 1回复 待解决
获取状态栏高度方法
537浏览 • 1回复 待解决
获取状态栏高度等方法
6721浏览 • 1回复 待解决
鸿蒙如何获取导航状态栏高度
9821浏览 • 1回复 待解决
有谁知道如何获取状态栏高度
748浏览 • 1回复 待解决
状态栏高度怎么获取
8235浏览 • 3回复 待解决
求大佬告知如何获取状态栏高度
666浏览 • 1回复 待解决
如何设置状态栏和导航颜色
1093浏览 • 1回复 待解决
应用如何设置隐藏顶部状态栏
839浏览 • 1回复 待解决
Js UI 如何设置状态栏背景是透明
1905浏览 • 1回复 待解决
如何设置沉浸式状态栏
931浏览 • 1回复 待解决
鸿蒙怎么 修改状态栏字体颜色
10586浏览 • 1回复 待解决
ets开发如何设置隐藏状态栏
1791浏览 • 1回复 待解决
Dialog如何覆盖状态栏全屏显示
8865浏览 • 1回复 待解决
uiextension为什么不会避让顶部状态栏
283浏览 • 1回复 待解决
this传递问题,该如何解决
729浏览 • 1回复 待解决