【问题标题】:Flutter: How to avoid change orientation?Flutter:如何避免改变方向?
【发布时间】:2018-05-03 18:30:27
【问题描述】:

我有一个横向的最终用户设计。用户不想要/不需要纵向,需要避免在 iOS/Android 上自动更改方向。我怎样才能做到这一点?

【问题讨论】:

标签: orientation flutter


【解决方案1】:

SystemChrome 是你想要的

您可以在 main.dart 中执行类似操作(不要忘记 import 'package:flutter/services.dart')

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

不幸的是,当我在我的应用程序中执行此操作时,方向将始终landscapeRight

要锁定 iOS 的方向,您需要更改 XCode 项目的设置(在终端中使用命令“open ios/Runner.xcworkspace”打开它)

【讨论】:

  • 需要导入吗?在 main() 内部?或 MyApp 类?请更具体一点。 SystemChrome(未定义名称)和 DeviceOrientation 上也有红色下划线。谢谢。
  • 需要导入吗?是的!导入“包:flutter/services.dart”。在 main() 内部?是的。或 MyApp 类?也许是吧!。谢谢。
  • @abnerh69 - 要锁定 iOS 的方向,您需要更改 XCode 项目的设置(在终端中使用命令“open ios/Runner.xcworkspace”打开它)
  • 有人知道,为什么倒置不起作用? DeviceOrientation.portraitDown,DeviceOrientation.portraitUp 不起作用。
  • 有什么方法可以锁定应用程序特定屏幕的方向,而不是锁定应用程序的所有屏幕?
【解决方案2】:
void main() {
  SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft])
    .then((_) {
      runApp(new MyApp());
    });
}

SystemChrome.setPreferredOrientations 返回一个未来。等到完成后,我们就可以启动我们的应用了。

【讨论】:

    【解决方案3】:

    在你的 main.dart 文件中添加这行代码 SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      相关资源
      最近更新 更多