Dart 如何防止所选屏幕上的设备方向更改

Dart 如何防止所选屏幕上的设备方向更改,dart,flutter,Dart,Flutter,我想在我的应用程序中阻止大多数屏幕上的方向改变,但允许在某些屏幕上改变方向 我已尝试在main()中实现以下内容: 然后在其他屏幕initState()中显示以下内容 我还试着删除主屏幕中的内容,并将其放入所有需要它的屏幕中,然后是上面的内容,但它始终只允许设置的第一个内容。更新一组新的需求似乎不起作用。颤振存储库中有一个公开的bug描述了这种行为,因此它看起来像一个bug: 您是否尝试重新启动应用程序而不是仅仅热加载?我只是胡乱猜测,但在推送新路线之前,请尝试以异步方法设置方向。可能在构建方法

我想在我的应用程序中阻止大多数屏幕上的方向改变,但允许在某些屏幕上改变方向

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

然后在其他屏幕initState()中显示以下内容


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

颤振存储库中有一个公开的bug描述了这种行为,因此它看起来像一个bug:


您是否尝试重新启动应用程序而不是仅仅热加载?我只是胡乱猜测,但在推送新路线之前,请尝试以异步方法设置方向。可能在构建方法之前需要设置方向。由于该方法返回未来,并且无法使initState异步,所以try()async{//wait set orientation//push new route我总是忘记热重新加载并不总是有效的。谢谢
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
  ]);
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
    DeviceOrientation.landscapeLeft,
    DeviceOrientation.landscapeRight
  ]);