Flutter中如何强制某个页面横屏

在很多文章中,提到了Flutter中强制某个页面横屏使用如下代码

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

然而在实际操作过程中,这样的代码在Android上是可以达到效果的,然而iOS中并不能达到预期的目标,需要手动旋转手机。

原因可能在于iOS中对应的代码仅仅是限定了当前屏幕的可用方向。但是当手机没有旋转的时候,屏幕会一直保持在当前的方向上,所以这行代码实际上并不好用。

很遗憾,有很多开发者进行了反馈,然而官方目前为止并没有修复这个BUG

SystemChrome.setPreferredOrientations does not force the device to the given orientations until the device is physically rotated #13238

难道真的没有解决办法么?其实有,iOS可以用原生的方式进行旋转,可是这样太不讲究了(出现了,讲究怪!)

pub上有这样一个package

orientation

使用方法很简单,一行代码就可以解决问题

    OrientationPlugin.forceOrientation(DeviceOrientation.landscapeLeft);

其中,forceOrientation中的参数为你希望的设备方向

enum DeviceOrientation {
  portraitUp,
  landscapeLeft,
  portraitDown,
  landscapeRight,
}

终于可以愉快的进行开发了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容