您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么用Flutter禁止手機橫屏”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在一些特定的 App 里,我們不希望手機橫屏的時候,App 發生旋轉,比如微信,企業微信都是這樣的。
代碼可以這樣設定:
import 'package:flutter/services.dart'; void main() async => { WidgetsFlutterBinding.ensureInitialized(); await SystemChrome.setPreferredOrientations( [ DeviceOrientation.portraitUp, // 豎屏 Portrait 模式 DeviceOrientation.portraitDown, // DeviceOrientation.landscapeLeft, // 橫屏 Landscape 模式 // DeviceOrientation.landscapeRight, ], ); runApp(MainApp()); };
在 main 函數里,像上面那樣設定,就可以做到全局禁用橫屏模式了。
不過,在企業微信里,我發現,并不是徹底禁用了橫屏模式,如果我在企業微信內部打開了一個網頁,這種場景下,就是可以橫屏過來用的。也就是,WebView 的場景下,我是可以橫屏的,但是在其他界面下不可以橫屏。這要怎么設置呢?
@override void initState() { super.initState(); SystemChrome.setPreferredOrientations([ DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight, DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); } @override void dispose() { SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); super.dispose(); }
像這樣,設置到一個 StatefulWidget 的 initState 和 dispose 里面就可以了。比如在我的代碼里,我把 WebView 專門封裝了一個頁面,叫 WebPage,這樣設定后,當用戶進入網頁的時候,可以橫屏,但是退回后,就會強制恢復豎屏。
參考:http://kmanong.top/kmn/qxw/form/article?id=2735&cate=93
參考:https://stackoverflow.com/questions/49418332/flutter-how-to-prevent-device-orientation-changes-and-force-portrait
“怎么用Flutter禁止手機橫屏”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。