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,
}
复制代码

终于可以愉快的进行下去了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值