我想在应用程序运行时更改应用程序的方向(仅限某些页面纵向和其他横向)

Posted

技术标签:

【中文标题】我想在应用程序运行时更改应用程序的方向(仅限某些页面纵向和其他横向)【英文标题】:I wanna change the orientation of my app while the app is runing (force certain pages portrait only and other landscape only) 【发布时间】:2020-03-07 06:27:47 【问题描述】:

我想强制我的游戏应用的某些页面的方向。就像,我希望着陆页、游戏选项和玩家选择的方向为纵向,但我想在游戏开始时强制方向为横向...我尝试使用:

super.initState();
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.landscapeLeft,
    DeviceOrientation.landscapeRight,
])

它确实适用于android,(除了它在获得正确方向之前改变方向3次......)但在ios上,它不会强制改变......它只会在你转动设备时改变然后它工作并保持在横向模式。即使我将手机保持为纵向,我也希望视图发生变化...

有没有人遇到过同样的问题并知道如何解决?

我尝试将 SystemChrome.setPreferredOrientations 放入 Widget 构建函数中,但没有成功。

【问题讨论】:

你可以查看这个:pub.dev/packages/native_device_orientation 【参考方案1】:

使用新版本的颤振,它可以在首选方向上工作。

SystemChrome.setPreferredOrientations([
    DeviceOrientation.landscapeLeft,
    DeviceOrientation.landscapeRight,
])

【讨论】:

【参考方案2】:

尝试使用:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

这对我有用!

【讨论】:

【参考方案3】:

这是 iOS 上 Flutter 的 known issue。您可以等待发布或通过运行命令flutter channel master 切换到最新的 Flutter 版本。但要小心 - master 分支不够稳定,无法在生产环境中使用。

【讨论】:

最新版本的方向也适用于 iOS 吗? @SimonB 至少它应该可以工作。根据他们在 10 天前合并修复的问题。

以上是关于我想在应用程序运行时更改应用程序的方向(仅限某些页面纵向和其他横向)的主要内容,如果未能解决你的问题,请参考以下文章

如何为 iOS 强制颤动设备方向

我想在 iTunes Connect 中将我的通用应用程序更新为仅限 iPad 的应用程序。但是在提交二进制文件时我收到以下错误

一般检查任何移动设备屏幕方向更改?

在设备方向更改时交叉淡入某些 UIView

快速方向视图更改

是否可以在 GKE 的区域集群中创建仅限区域的节点池?