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
2天前
浏览
收藏 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
微信
回复
2天前
相关问题
HarmonyOS 横竖切换
28浏览 • 1回复 待解决
HarmonyOS 监听横竖切换
34浏览 • 1回复 待解决
HarmonyOS 横竖切换实现过于繁琐
104浏览 • 1回复 待解决
HarmonyOS 平板无法正确横竖切换
29浏览 • 1回复 待解决
如何进行页面横竖切换
2008浏览 • 1回复 待解决
页面横竖如何进行切换
475浏览 • 1回复 待解决
求大佬告知如何切换横竖
2101浏览 • 1回复 待解决
HarmonyOS 小窗下如何实现横竖切换
26浏览 • 1回复 待解决
HarmonyOS 横竖设置问题
27浏览 • 1回复 待解决
HarmonyOS 设置横竖问题
32浏览 • 1回复 待解决
如何监听设备横竖切换状态呢
1719浏览 • 1回复 待解决
如何监听手机屏幕的横竖切换
472浏览 • 1回复 待解决
如何实现page页面的横竖切换
543浏览 • 1回复 待解决
鸿蒙横竖切换监听,需要这个功能
11406浏览 • 3回复 已解决
鸿蒙JS 框架中如何主动切换横竖?
4842浏览 • 1回复 待解决