来源 | 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 如何实现禁止手机横屏的功能相关推荐

  1. Flutter 如何禁止手机横屏[Flutter专题62]

    问题引出 群友发来问题: Flutter 怎么禁止横屏显示呀,网上说的几个方法 都没有效 群友遇到问题,就要群友去帮助,这样,这个群就有了存在的意义. 正文 在一些特定的 App 里,我们不希望手机横 ...

  2. 手机移动端web 禁止手机返回功能的最好方法,虽然很变态,但是很有效.

    手机移动端web 禁止手机返回功能的最好方法 虽然很变态,但是很有效. var href = window.location.href; window.location.href = href + & ...

  3. 华为手机有哪些功能关掉比较好?

    华为手机为用户提供了很多可供选择的功能,这里面有一些是比较实用的功能,比如多屏协同.智慧语音.应用分身.手机克隆.畅连通话(畅连共享屏幕).智慧截屏(隔空抓取截屏.指关节双击截屏以及指关节画滚动截长图 ...

  4. 禁止 自动 安装 android,如何永远禁止手机安装拼多多?永远禁止手机安装拼多多的方法[多图]...

    拼多多是一个很多用户都会使用到的购物软件,在使用这款软件的时候,用户可以在平台上选择自己想要的服务进行使用和操作,但是很多用户都不喜欢这个服务,如果用户在使用这款软件的时候,不想要使用这款软件,那么可 ...

  5. android 横屏字体变小,网页自适应解决iPhone手机横屏字体变大问题

    先森在完成网站自适应的过程中,遇到了很多大大小小的问题,其中一个问题就是横屏字体变大的问题.这个问题一碰到感觉很麻烦,其实解决方法却很简单. 网页自适应解决iPhone手机横屏字体变大问题 网上搜索结 ...

  6. Flutter学习第十五天:2021年最新版超详细Flutter实现Mob+SMSSDK手机验证码登录实现,Android和Flutter混合开发?

    Flutter实现手机验证码登录 第一步:在mob平台配置SMSSDK环境 第二步:建立flutter项目和android的library文件 第三步:在Android的library文件中部署mob ...

  7. html5禁止手机横竖屏,【Web前端问题】js 能禁止手机横竖屏切换吗

    js 能禁止手机横竖屏切换吗 回答: js判断手机 横屏模式 方法名称:orientation 实例: if(window.orientation!=0){ var obj=document.getE ...

  8. qq无限时间撤回消息bug_手机QQ新功能汇总,比微信有意思多了

    手机 QQ 的更新相比微信来说更加频繁,虽然多是在小细节上面,但可玩性和实用性都比微信高很多.近期,QQ又为用户准备了不少好玩的更新,一起来看看. 青少年模式上线 打开安卓版新版手机 QQ 的[设置] ...

  9. adb命令开启手机的一些功能,请问怎么操作?

    ============问题描述============ 我想使用ADB命令,来启动手机的一些功能,比如开启"未知来源",即允许第三方程序安装.因为我要写一个脚本,自动安装APK的 ...

  10. 华为nova5iotg功能使用_如果你的手机存在NFC功能,一定要尝试一下这些操作,体验超级棒...

    随着手机科技不断的发展,我们的生活也走向了越来越便利的路线.就像华为手机中的NFC功能,打开以后再也不用随身携带门禁卡,手机就能开门.除此之外,华为NFC还有很多强大的功能,下面随着小编一起来了解吧! ...

最新文章

  1. jenkins邮件配置
  2. c语言复杂性,C语言复杂函数
  3. 更改VS的默认开发语言
  4. (转)jQuery第五课:Ajax
  5. mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么
  6. C语言srand((unsigned)time(NULL))…
  7. LeetCode 436. 寻找右区间(二分查找)
  8. mybatis返回map键值对_mybatis返回map key怎么指定
  9. 设计模式笔记二十:观察者模式 |更新版
  10. Mybatis_day3_Mybatis的多表查询
  11. Bailian2698 八皇后【回溯】
  12. Machine Learning - XV. Anomaly Detection异常检测 (Week 9)
  13. 1_Hadoop安装部署及常用配置(HDFS+YARN)
  14. DHU 数据科学技术与应用【10】 第八次单元测验 时序与语音数据处理 答案
  15. 嵌入式大佬 | 嵌入式C语言知识点万字总结
  16. 电子电路学习笔记(7)——LED发光二极管限流电阻计算
  17. Shell脚本加密工具——Shc
  18. 中国象棋java大作业doc_《java语言程序设计》课程设计-中国象棋对弈系统(源码).doc...
  19. 改善记忆力的二十种记忆方法,随便你挑!
  20. vs2015 openssl-1.0.2j编译

热门文章

  1. PO BO VO DTO POJO DAO概念及其作用
  2. 从入门到入土:Python实现爬取网易云歌词|评论生成词云图
  3. Python 第六章 面向对象编程(MD模式)
  4. 网站视频倍速播放和进度自定义调整
  5. kotlin插件禁用导致的Android studio无法打开-mac
  6. android 数据线有几种,安卓数据线有几种
  7. 什么是转义字符?转义字符有哪些?为什么使用转义字符?
  8. 【苹果群发iMessage推送位置推】软件安装将会按照 Developer Program License Agreement
  9. CSGO中最新骗术!新老玩家须知-CSGO防骗指南
  10. 重载函数sroot3次,让它返回整数、长整数、双精度数的二次方根