在很多文章中,提到了Flutter中强制某个页面横屏使用如下代码
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown
]);
然而在实际操作过程中,这样的代码在Android上是可以达到效果的,然而iOS中并不能达到预期的目标,需要手动旋转手机。
原因可能在于iOS中对应的代码仅仅是限定了当前屏幕的可用方向。但是当手机没有旋转的时候,屏幕会一直保持在当前的方向上,所以这行代码实际上并不好用。
很遗憾,有很多开发者进行了反馈,然而官方目前为止并没有修复这个BUG
难道真的没有解决办法么?其实有,iOS可以用原生的方式进行旋转,可是这样太不讲究了(出现了,讲究怪!)
pub上有这样一个package
orientation
使用方法很简单,一行代码就可以解决问题
OrientationPlugin.forceOrientation(DeviceOrientation.landscapeLeft);
其中,forceOrientation中的参数为你希望的设备方向
enum DeviceOrientation {
portraitUp,
landscapeLeft,
portraitDown,
landscapeRight,
}
终于可以愉快的进行开发了。