HarmonyOS page设置全屏问题

Splash页面设置全屏,在Splash页面有一个用户协议可以点击跳转到一个page查看用户协议(用户协议页面不是全屏的,所以跳转到这个页面需要设置不全屏),返回到Splash页面调用设置全屏接口大概率无效,断点查看是有调用接口的。

全屏设置接口:

window.getLastWindow(getContext(), (err: BusinessError, data) => {
  data.setWindowLayoutFullScreen(isFullScreen)
    .then(() => {
      console.info('Succeeded in setting the window layout to full-screen mode.');
    })
    .catch((err: BusinessError) => {
      console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
    });
})
HarmonyOS
19h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

提供的方案是可以通过获取状态栏和导航条高度,然后设置margin,在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#section15671730447

分享
微博
QQ
微信
回复
17h前
相关问题
HarmonyOS page 参数问题
352浏览 • 1回复 待解决
HarmonyOS struct全屏问题
255浏览 • 1回复 待解决
HarmonyOS 无法全屏问题
61浏览 • 1回复 待解决
HarmonyOS page页面的问题
31浏览 • 1回复 待解决
HarmonyOS 页面如何设置全屏显示?
500浏览 • 1回复 待解决
HarmonyOS 视频全屏化的问题
47浏览 • 1回复 待解决
video requestFullscreen 全屏问题
982浏览 • 1回复 待解决
HarmonyOS 怎么设置某个 page 横屏展示
29浏览 • 1回复 待解决
startWindowIcon可以设置全屏显示吗?
927浏览 • 1回复 待解决
HarmonyOS webvideo禁用全屏显示问题
44浏览 • 1回复 待解决
HarmonyOS 如何对page页面设置透明
584浏览 • 1回复 待解决
HarmonyOS 如何将page设置为透明
18浏览 • 1回复 待解决
HarmonyOS page和WebView无法设置为透明
448浏览 • 1回复 待解决
如何设置全屏返回的动效
2059浏览 • 1回复 待解决