HarmonyOS 沉浸式全屏时如何获取页面顶部和底部的安全距离

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

可以在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('statusHeight', px2vp(statusHeight)); //状态栏高度      
    AppStorage.setOrCreate('bottomHeight', px2vp(bottomHeight)); // 底部导航条高度

  });
}

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

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 底部安全距离是怎么获取
692浏览 • 1回复 待解决
HarmonyOS 底部安全距离获取为0
587浏览 • 1回复 待解决
HarmonyOS 底部导航条沉浸方案
338浏览 • 1回复 待解决