首页 > 解决方案 > 如何仅针对 Flutter 中的某些类防止设备旋转?

问题描述

我正在开发一个 Flutter 应用程序,我只需要在某些类中防止设备旋转,同时保持它在其他类中工作。我现在如何在应用程序中全局禁用旋转,但如何仅在某些类中禁用它?

标签: flutterdartorientationflutter-layoutscreen-orientation

解决方案


你可以尝试在你的小部件中使用这样的东西:

// to lock in landscape view
@override
void initState() {
  super.initState();
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.landscapeRight,
    DeviceOrientation.landscapeLeft,
  ]);
}

@override
dispose() {
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.landscapeRight,
    DeviceOrientation.landscapeLeft,
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ]);
  super.dispose();
}

initState()使用and的事实dispose()意味着您必须使用 aStatefulWidget如果情况并非如此。


推荐阅读