Flutter:当我在 iPad 上使用 SystemChrome.setPreferredOrientations 时出现问题

问题描述 投票:0回答:2

在我的项目中,我只需要一个页面是横向模式而不是纵向模式,而其余页面都是纵向和横向模式。

根据文档,我使用了 SystemChrome.setPreferredOrientations

   @override 
   void initState() {
    
    // set the screen in landscape mode
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);

   super.initState();
}

 @override
  void dispose() {
    // restore the
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);
    
    super.dispose();
  }

当我退出页面恢复竖屏模式时。

现在,虽然在 iPhone 上它可以完美地工作,但在 iPad 上就好像它不存在一样,横向和纵向都可以。 当然,因为我不希望整个应用程序处于横向模式,而只希望一页,所以我无法对 info.plist 进行操作。 有人遇到过同样的问题吗? 谢谢

ios flutter dart orientation
2个回答
0
投票

处理时仅保留纵向向上

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

0
投票

如果是iPad,请在info.plist中设置

<key>UIRequiresFullScreen</key>
<true/>

添加此 SystemChrome.setPreferredOrientations([....]) 后即可正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.