仅更改一个屏幕方向抖动

时间:2020-07-09 14:08:25

标签: flutter

我只想更改一个屏幕方向,

在我的第一个视图中,我使用仅纵向模式,但是在第二个视图中,我同时使用纵向和横向,在我的第二个视图中,我这样写

@override
  void initState() {
    super.initState();

    WidgetsFlutterBinding.ensureInitialized();
    SystemChrome.setPreferredOrientations([
            DeviceOrientation.portraitDown,
            DeviceOrientation.portraitUp,
            DeviceOrientation.landscapeLeft,
            DeviceOrientation.landscapeRight
          ]);
  }

  @override
  void dispose() {
    super.dispose();
   WidgetsFlutterBinding.ensureInitialized();
    SystemChrome.setPreferredOrientations(
            DeviceOrientation.portraitDown,
            DeviceOrientation.portraitUp,
          ]);
  }

但是在我仅使用人像模式的第一个视图中返回并在第二个视图中返回时,不认识到方向是风景模式。我一直没有改变方向。

1 个答案:

答案 0 :(得分:0)

首先,无需调用它:WidgetsFlutterBinding.ensureInitialized();initState中的dispose。仅在runApp之前在您的主函数中调用它就足够了。关于您的问题,请致电:

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

super.dispose()之前