Flutter 如何实现禁止手机横屏的功能
来源 | https://sexywp.com/flutter-disable-landscape-mode.htm
在一些特定的 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 的场景下,我是可以横屏的,但是在其他界面下不可以横屏。这要怎么设置呢?
@overridevoid initState() {super.initState();SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft,DeviceOrientation.landscapeRight,DeviceOrientation.portraitUp,DeviceOrientation.portraitDown,]);}@overridevoid 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 如何实现禁止手机横屏的功能相关推荐
- Flutter 如何禁止手机横屏[Flutter专题62]
问题引出 群友发来问题: Flutter 怎么禁止横屏显示呀,网上说的几个方法 都没有效 群友遇到问题,就要群友去帮助,这样,这个群就有了存在的意义. 正文 在一些特定的 App 里,我们不希望手机横 ...
- 手机移动端web 禁止手机返回功能的最好方法,虽然很变态,但是很有效.
手机移动端web 禁止手机返回功能的最好方法 虽然很变态,但是很有效. var href = window.location.href; window.location.href = href + & ...
- 华为手机有哪些功能关掉比较好?
华为手机为用户提供了很多可供选择的功能,这里面有一些是比较实用的功能,比如多屏协同.智慧语音.应用分身.手机克隆.畅连通话(畅连共享屏幕).智慧截屏(隔空抓取截屏.指关节双击截屏以及指关节画滚动截长图 ...
- 禁止 自动 安装 android,如何永远禁止手机安装拼多多?永远禁止手机安装拼多多的方法[多图]...
拼多多是一个很多用户都会使用到的购物软件,在使用这款软件的时候,用户可以在平台上选择自己想要的服务进行使用和操作,但是很多用户都不喜欢这个服务,如果用户在使用这款软件的时候,不想要使用这款软件,那么可 ...
- android 横屏字体变小,网页自适应解决iPhone手机横屏字体变大问题
先森在完成网站自适应的过程中,遇到了很多大大小小的问题,其中一个问题就是横屏字体变大的问题.这个问题一碰到感觉很麻烦,其实解决方法却很简单. 网页自适应解决iPhone手机横屏字体变大问题 网上搜索结 ...
- Flutter学习第十五天:2021年最新版超详细Flutter实现Mob+SMSSDK手机验证码登录实现,Android和Flutter混合开发?
Flutter实现手机验证码登录 第一步:在mob平台配置SMSSDK环境 第二步:建立flutter项目和android的library文件 第三步:在Android的library文件中部署mob ...
- html5禁止手机横竖屏,【Web前端问题】js 能禁止手机横竖屏切换吗
js 能禁止手机横竖屏切换吗 回答: js判断手机 横屏模式 方法名称:orientation 实例: if(window.orientation!=0){ var obj=document.getE ...
- qq无限时间撤回消息bug_手机QQ新功能汇总,比微信有意思多了
手机 QQ 的更新相比微信来说更加频繁,虽然多是在小细节上面,但可玩性和实用性都比微信高很多.近期,QQ又为用户准备了不少好玩的更新,一起来看看. 青少年模式上线 打开安卓版新版手机 QQ 的[设置] ...
- adb命令开启手机的一些功能,请问怎么操作?
============问题描述============ 我想使用ADB命令,来启动手机的一些功能,比如开启"未知来源",即允许第三方程序安装.因为我要写一个脚本,自动安装APK的 ...
- 华为nova5iotg功能使用_如果你的手机存在NFC功能,一定要尝试一下这些操作,体验超级棒...
随着手机科技不断的发展,我们的生活也走向了越来越便利的路线.就像华为手机中的NFC功能,打开以后再也不用随身携带门禁卡,手机就能开门.除此之外,华为NFC还有很多强大的功能,下面随着小编一起来了解吧! ...
最新文章
- jenkins邮件配置
- c语言复杂性,C语言复杂函数
- 更改VS的默认开发语言
- (转)jQuery第五课:Ajax
- mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么
- C语言srand((unsigned)time(NULL))…
- LeetCode 436. 寻找右区间(二分查找)
- mybatis返回map键值对_mybatis返回map key怎么指定
- 设计模式笔记二十:观察者模式 |更新版
- Mybatis_day3_Mybatis的多表查询
- Bailian2698 八皇后【回溯】
- Machine Learning - XV. Anomaly Detection异常检测 (Week 9)
- 1_Hadoop安装部署及常用配置(HDFS+YARN)
- DHU 数据科学技术与应用【10】 第八次单元测验 时序与语音数据处理 答案
- 嵌入式大佬 | 嵌入式C语言知识点万字总结
- 电子电路学习笔记(7)——LED发光二极管限流电阻计算
- Shell脚本加密工具——Shc
- 中国象棋java大作业doc_《java语言程序设计》课程设计-中国象棋对弈系统(源码).doc...
- 改善记忆力的二十种记忆方法,随便你挑!
- vs2015 openssl-1.0.2j编译
热门文章
- PO BO VO DTO POJO DAO概念及其作用
- 从入门到入土:Python实现爬取网易云歌词|评论生成词云图
- Python 第六章 面向对象编程(MD模式)
- 网站视频倍速播放和进度自定义调整
- kotlin插件禁用导致的Android studio无法打开-mac
- android 数据线有几种,安卓数据线有几种
- 什么是转义字符?转义字符有哪些?为什么使用转义字符?
- 【苹果群发iMessage推送位置推】软件安装将会按照 Developer Program License Agreement
- CSGO中最新骗术!新老玩家须知-CSGO防骗指南
- 重载函数sroot3次,让它返回整数、长整数、双精度数的二次方根