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



我想强制我的游戏应用程序的某些页面的方向。比如,我希望登录页、游戏选项和玩家选择的方向为纵向,但我希望在游戏开始时强制方向为横向。。。我尝试使用:

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

它在安卓系统上确实有效,(除了它在获得正确的方向之前更改了3次方向…(但在iOS上,它不会强制更改。。。只有当你打开设备,它才能工作并保持在横向模式时,它才会改变。即使我把手机放在肖像上,我也希望视图能改变。。。

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

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

这是Flutter在iOS上的一个已知问题。您可以等待发布,也可以通过运行命令flutter channel master切换到最新的Flutter版本。但要小心,master分支不够稳定,无法在生产中使用。

尝试使用:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

这对我有用!

对于新版本的flutter,它以首选方向工作。

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

最新更新