在很多文章中,提到了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,
}
複製程式碼
終於可以愉快的進行下去了。