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
相关问题
关于屏幕安全区域问题咨询
349浏览 • 1回复 待解决
状态栏底部触控高度获取
936浏览 • 2回复 待解决
HarmonyOS 安全区域失效
36浏览 • 1回复 待解决
HarmonyOS 安全区域出错
22浏览 • 1回复 待解决
HarmonyOS 安全区域问题
63浏览 • 1回复 待解决
HarmonyOS scroll安全区域问题
56浏览 • 1回复 待解决
HarmonyOS 如何获取状态栏高度
661浏览 • 1回复 待解决
HarmonyOS 如何获取状态栏高度
5浏览 • 0回复 待解决
HarmonyOS 设置安全区域不生效
44浏览 • 1回复 待解决
获取状态栏高度方法
1997浏览 • 1回复 待解决
如何获取状态栏与导航高度
260浏览 • 0回复 待解决
如何获取状态栏和导航高度
2927浏览 • 1回复 待解决