Flutter:如何避免改变方向?
Posted
技术标签:
【中文标题】Flutter:如何避免改变方向?【英文标题】:Flutter: How to avoid change orientation? 【发布时间】:2018-05-03 18:30:27 【问题描述】:我有一个横向的最终用户设计。用户不想要/不需要纵向,需要避免在 ios/android 上自动更改方向。我怎样才能做到这一点?
【问题讨论】:
请找到这个更新的答案***.com/a/50884081/348589 【参考方案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]);
【讨论】:
以上是关于Flutter:如何避免改变方向?的主要内容,如果未能解决你的问题,请参考以下文章