HarmonyOS 横竖屏切换问题

应用内包含两组页面,分别属于不同的windows,A组页面可能有横屏场景,B组页面无横屏场景。目前使用以下方式设置A组某页面横屏:

private async changeWindowOrientation(isLandscape: boolean): Promise<void> {
  // 改变界面横竖屏状态和导航栏的隐藏显示状态
  const mainWindow = await xxxx.getWindowStage().getMainWindow();
  await mainWindow.setPreferredOrientation(isLandscape ? window.Orientation.LANDSCAPE : window.Orientation.PORTRAIT);
  await mainWindow.setSpecificSystemBarEnabled('status', isLandscape ? false : true);
}

点击B组某页面内按钮后,开启A组某页面A组某页面设置为横屏后,导致B组页面也被设置为横屏,此时B组页面内涉及使用屏幕宽高计算的逻辑被影响,如弹出弹框等。针对以上场景是否有更好的解决方案,需要满足A组页面正常设置横屏2、B组页面无需适配横屏(B组页面没有横屏业务场景,适配横屏感觉不合理)。

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

可以使用临时旋转 USER_ROTATION_LANDSCAPE等,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#orientation9

需要设置的页面加一个:

onPageShow(): void {
  console.log('displayModule onPageShow')
  window.getLastWindow(getContext(this), (err, win) => {
    win.setPreferredOrientation(window.Orientation.LANDSCAPE)
  })
}

onPageHide() {
  console.log('displayModule onPageHide')
  window.getLastWindow(getContext(this), (err, win) => {
    win.setPreferredOrientation(window.Orientation.PORTRAIT)
  })
}
分享
微博
QQ
微信
回复
2024-12-24 19:58:12
相关问题
HarmonyOS 横竖切换
1430浏览 • 1回复 待解决
HarmonyOS 监听横竖切换
1233浏览 • 1回复 待解决
HarmonyOS 创建子window后横竖切换问题
1218浏览 • 1回复 待解决
HarmonyOS 小窗下如何实现横竖切换
1237浏览 • 1回复 待解决
求大佬告知如何切换横竖
3396浏览 • 1回复 待解决
HarmonyOS 设置横竖问题
824浏览 • 1回复 待解决
HarmonyOS 横竖切换实现过于繁琐
1239浏览 • 1回复 待解决
HarmonyOS 平板无法正确横竖切换
1230浏览 • 1回复 待解决
如何监听手机屏幕的横竖切换
1438浏览 • 1回复 待解决
如何实现page页面的横竖切换
1617浏览 • 1回复 待解决
鸿蒙横竖切换监听,需要这个功能
12398浏览 • 3回复 已解决
页面横竖如何进行切换
1476浏览 • 1回复 待解决
如何进行页面横竖切换
3150浏览 • 1回复 待解决
HarmonyOS 横竖设置问题
755浏览 • 1回复 待解决
鸿蒙JS 框架中如何主动切换横竖?
5933浏览 • 1回复 待解决
如何监听设备横竖切换状态呢
2766浏览 • 1回复 待解决