【问题标题】: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 构建函数中,但没有成功。

【问题讨论】:

标签: android ios flutter dart


【解决方案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 天前合并修复的问题。
      猜你喜欢
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 2018-11-21
      • 2014-09-10
      • 1970-01-01
      • 2014-10-25
      • 2015-06-14
      • 1970-01-01
      相关资源
      最近更新 更多