HarmonyOS 如何获取屏幕状态栏跟底部安全区域的高度?

HarmonyOS 如何获取屏幕状态栏跟底部安全区域的高度?

HarmonyOS
2024-10-16 12:01:17
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

可以在EntryAbility里获取并存储,获取到的高度是px,所以用px2vp()转换为vp使用:

onWindowStageCreate(windowStage: window.WindowStage) {  
  // Main window is created, set main page for this ability  
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');  
  windowStage.loadContent('pages/Index', (err, data) => {  
    if (err.code) {  
      hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');  
      return;  
    }  
    hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');  
    let windowClass = windowStage.getMainWindowSync()  
    let statusHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).topRect.height;  
    let bottomHeight = windowClass.getWindowAvoidArea(window.AvoidAreaType.TYPE_NAVIGATION_INDICATOR).bottomRect.height;  
    AppStorage.setOrCreate('bottomHeight',px2vp(bottomHeight));  
    AppStorage.setOrCreate('statusHeight',px2vp(statusHeight));  
  });  
}

在需要的界面使用 AppStorage.get('bottomHeight'),AppStorage.get('statusHeight') 获取。

相关文档可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-develop-apply-immersive-effects-V5#section171801550301

分享
微博
QQ
微信
回复
2024-10-16 17:00:58
相关问题
关于屏幕安全区域问题咨询
252浏览 • 1回复 待解决
状态栏底部触控高度获取
646浏览 • 2回复 待解决
HarmonyOS 如何获取状态栏高度
458浏览 • 1回复 待解决
HarmonyOS API获取状态栏高度
224浏览 • 1回复 待解决
HarmonyOS 如何获取系统状态栏高度
674浏览 • 1回复 待解决
获取状态栏高度方法
1880浏览 • 1回复 待解决
如何获取状态栏和导航高度
2836浏览 • 1回复 待解决
如何获取状态栏与导航高度
24浏览 • 0回复 待解决
如何获取系统导航状态栏高度
700浏览 • 1回复 待解决
获取状态栏与导航高度
511浏览 • 1回复 待解决
鸿蒙如何获取导航状态栏高度
11254浏览 • 1回复 待解决