Flutter禁止手機(jī)橫屏的簡單實(shí)現(xiàn)方法
在一些特定的 App 里,我們不希望手機(jī)橫屏的時(shí)候,App 發(fā)生旋轉(zhuǎn),比如微信,企業(yè)微信都是這樣的。
代碼可以這樣設(shè)定:
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 函數(shù)里,像上面那樣設(shè)定,就可以做到全局禁用橫屏模式了。
不過,在企業(yè)微信里,我發(fā)現(xiàn),并不是徹底禁用了橫屏模式,如果我在企業(yè)微信內(nèi)部打開了一個(gè)網(wǎng)頁,這種場景下,就是可以橫屏過來用的。也就是,WebView 的場景下,我是可以橫屏的,但是在其他界面下不可以橫屏。這要怎么設(shè)置呢?
@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();
}
像這樣,設(shè)置到一個(gè) StatefulWidget 的 initState 和 dispose 里面就可以了。比如在我的代碼里,我把 WebView 專門封裝了一個(gè)頁面,叫 WebPage,這樣設(shè)定后,當(dāng)用戶進(jìn)入網(wǎng)頁的時(shí)候,可以橫屏,但是退回后,就會(huì)強(qiáng)制恢復(fù)豎屏。
參考: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
總結(jié)
到此這篇關(guān)于Flutter禁止手機(jī)橫屏的文章就介紹到這了,更多相關(guān)Flutter禁止手機(jī)橫屏內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android實(shí)現(xiàn)多段顏色進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多段顏色進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Flutter開發(fā)之Widget自定義總結(jié)
這篇文章主要給大家介紹了關(guān)于Flutter開發(fā)中Widget自定義的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Android仿微信和QQ多圖合并框架(類似群頭像)的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Android仿微信和QQ多圖合并框架的相關(guān)資料,其實(shí)就是我們平時(shí)所見的群聊頭像,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Android編程之線性布局LinearLayout實(shí)例簡析
這篇文章主要介紹了Android編程之線性布局LinearLayout用法,結(jié)合實(shí)例形式簡單分析了Android線性布局的使用技巧,需要的朋友可以參考下2016-01-01
Android編程設(shè)計(jì)模式之模板方法模式詳解
這篇文章主要介紹了Android編程設(shè)計(jì)模式之模板方法模式,結(jié)合實(shí)例形式詳細(xì)分析了Android模板方法模式的概念、功能、使用場景、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-12-12
Android通過滑動(dòng)實(shí)現(xiàn)Activity跳轉(zhuǎn)(手勢識別器應(yīng)用)
這篇文章主要為大家詳細(xì)介紹了Android通過滑動(dòng)實(shí)現(xiàn)Activity跳轉(zhuǎn),,講解手勢識別器應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Android車載多媒體開發(fā)MediaSession框架示例詳解
這篇文章主要為大家介紹了Android車載多媒體開發(fā)MediaSession框架示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Android通過LIstView顯示文件列表的兩種方法介紹
過ListView顯示SD卡中的文件列表一共有兩種方法,一是:通過繼承ListActivity顯示;二是:利用BaseAdapter顯示,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-06-06

