【问题标题】:How to prevent device orientation changes on selected screens如何防止所选屏幕上的设备方向更改
【发布时间】:2018-06-01 23:56:48
【问题描述】:

我想在整个应用程序的大多数屏幕上阻止方向更改,但在某些屏幕上允许它发生

我尝试在 main() 中实现以下内容:

  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
  ]);

然后在其他屏幕 initState() 中进行以下操作

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

我还尝试删除 main 中的内容并将其放置在所有需要它的屏幕中,然后放在上面,但它仍然总是只允许设置的第一个。更新一组新的要求似乎不起作用。

【问题讨论】:

  • 您是否尝试过重新启动您的应用而不是热重载?
  • 我也只是在猜测,但在推送新路线之前尝试在异步方法中设置方向。可能需要在构建方法之前设置方向。并且由于该方法返回一个未来,并且您无法使 initState 异步,因此请尝试 () async { //await set orientation //push new route
  • 我总是忘记热重载并不总是有效。谢谢

标签: dart flutter


【解决方案1】:

Flutter 存储库中有一个描述此行为的开放错误,因此它看起来像一个错误:

https://github.com/flutter/flutter/issues/13238

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2013-12-30
    相关资源
    最近更新 更多