美文网首页FlutterFlutter圈子Flutter Developer
Flutter中如何强制某个页面横屏

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

作者: 天国的502 | 来源:发表于2019-03-15 15:45 被阅读16次

    在很多文章中,提到了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,
    }
    

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

    相关文章

      网友评论

        本文标题:Flutter中如何强制某个页面横屏

        本文链接:https://www.haomeiwen.com/subject/brqrmqtx.html