Flutter 特定页面切换屏幕方向/iOS强制横屏/SystemChrome.setPreferredOrientations不起作用 看这里!...

2023-11-15

转载请标明出处: juejin.im/post/5c68da…
本文出自:Wos的主页

我此刻的Flutter版本:

Flutter 1.2.0 • channel dev • github.com/flutter/flu…
Framework • revision 06b979c4d5 (3 weeks ago) • 2019-01-25 14:27:35 -0500
Engine • revision 36acd02c94
Tools • Dart 2.1.1 (build 2.1.1-dev.3.2 f4afaee422)

特定页面旋转屏幕很简单:

SystemChrome.setPreferredOrientations([
  ...
]);
复制代码

数组中是您要支持的屏幕方向.

如果想在特定页面固定横屏, 您可以这样写:

@override
void initState() {
  super.initState();
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.landscapeRight,
    DeviceOrientation.landscapeRight,
  ]);
}
复制代码

并且在dispose时更改回竖屏

@override
void dispose() {
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
  ]);
  super.dispose();
}
复制代码

但是!!! 不要走开 本文重点在下面

在Android设备上, 调用此方法可以强制改变屏幕方向. 但在iOS上却不是这样

对于iOS, 这个方法表示设置应用支持的屏幕方向, 只有在物理方向改变时才会改变屏幕方向

现在看起来, 这应该是一个Flutter的一个Bug. 有待官方解决

您可关注 issue #13238 追踪Flutter官方的最新更新

强制改变布局方向

既然 Flutter 提供的方法不能强制改变屏幕方向, 那么我们可以通过插件的形式, 桥接到iOS原生代码中, 通过原生方式改变屏幕方向.

设置应用支持的布局方向

通过Xcode打开Flutter项目中的iOS工程, 根据下图找到Device Orientation 这一项 勾选需要支持的布局方向, 通过这一步, 默认你现在的应用已经会根据设备的方向转变布局了

编写插件

展开 Runner/Runner文件夹 右键->New File 添加两个新的OC文件 FlutterIOSDevicePlugin.mFlutterIOSDevicePlugin.h (叫

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter 特定页面切换屏幕方向/iOS强制横屏/SystemChrome.setPreferredOrientations不起作用 看这里!... 的相关文章

  • 如何在 Swift 中将所有 iOS 设备的标签水平居中

    我不知道如何使标签在图像视图中水平居中 标签说 You ve been here What would you rate us 我想要What would you rate us属于 You ve been here 我试图完成此操作的方法
  • 如何打开 .swiftmodule 文件

    我想检查某个公共内容 swiftmodule来自 iOS 框架的文件 Here https lists swift org pipermail swift users Week of Mon 20160111 000827 html htt
  • GCDWebServer 是做什么用的?

    我在 iOS8 中从 WKWebView 加载本地网页时遇到问题 有一些建议我应该使用 GCDWebServer 我通读了GCDWeb服务器 https github com swisspol GCDWebServer 但并没有真正理解 G
  • 无法使用“String”类型的索引为“[NSObject : AnyObject]”类型的值添加下标

    我在下面的代码片段中遇到错误 每次我尝试构建它时 编译器都会抱怨 无法使用 String 类型的索引为 NSObject AnyObject 类型的值添加下标 这是代码 尽显其魅力 import Foundation import MapK
  • NSRemoteView 在日志中生成一条奇怪的消息

    当我在 macOS Sierra 中运行沙盒应用程序时 我在日志中找到以下消息 2016 09 21 12 08 42 787003 MyApp 1505 63581 warning
  • 如何迁移到新的 SwiftUI 应用协议?

    我正在开发一个 SwiftUI 应用程序 该应用程序仍然具有场景 应用程序委托文件 并希望将其迁移到新的 SwiftUI 应用程序协议 这只是删除场景 应用程序委托文件 然后将我的 ContentView 在我的例子中为初始视图 添加到 m
  • 在 iPhone 5s 或 64 位模拟器上测试 32 位 iOS 应用程序

    我有一个使用第三方库的应用程序 64 位版本的库存在错误 因此我不得不恢复到 32 位版本的框架 我想在 5s 上测试这个版本 但从 XCode 中 它将尝试在 64 位中构建 并且由于这个 32 位框架 构建将失败 我需要发布一个版本 但
  • 自定义 UITableViewCell 不显示故事板中的标签

    在此屏幕截图中 您可以看到我已在 UIViewController 中添加了 UITableView 然后通过在其中添加一些标签来自定义 UITableViewCell 但问题是当我运行应用程序时 所有单元格都是空的 根本没有标签 我不明白
  • Xcode:UIPickerView 更改单个行背景颜色

    我有一个包含 3 个组件 或列 的 UIPickerView 每列都有不同数量的行或项目 我需要能够设置每一行的背景颜色 我做了一些挖掘 发现了一些几乎可以工作的东西 但不完全是我需要的 UIView pickerView UIPicker
  • Xcode 上传错误:无法打开 ssh 会话。 (16)

    NOTE 我们最终上传了该应用程序 但我们并没有真正解决这个问题 所以如果有人可以分享一些与这个问题有关的宝贵见解或经验 我将不胜感激 遇到同样的问题后 我已经能够解决这个问题 要解决这个问题 您需要 转至第 6 页 系统和网络要求 htt
  • 重构函数错误 - “不是此工作区中 Xcode 3 项目中任何目标的构建阶段的一部分,因此无法重构”

    尝试通过 XCode 4 1 中类别的 h 文件中的 refactor gt rename 按钮重命名函数的名称 我收到此错误 错误和正文 UINavigationController ZG h 不属于此工作区中 Xcode 3 项目中任何
  • 在大型团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有何优缺点?

    我们希望在一个项目上一起工作 签出 签入文件 一些开发人员推荐 git 其他开发人员更喜欢 Mercurial 有没有人对这两者都有经验 并且能告诉我为什么我应该花时间在不与 Xcode 集成的 Mercurial 上 而不是只使用集成的
  • iOS 6 仅支持一个视图的不同方向

    我只想将应用程序中的一个视图旋转到左横向或右横向 我的所有其他视图均处于纵向模式 并且我已将我的应用程序设置为仅支持纵向模式 随着 iOS 6 中方向的改变 我不知道如何做到这一点 我已经尝试过下面发布的内容 谁能告诉我我做错了什么 谢谢
  • Swift 3:无法通过 BLE 连接到外设

    我是 BLE 的新手 目前正在尝试制作一个简单的应用程序来连接到我的自定义 BLE 设备 我能够发现 BLE 设备 但由于某种原因我无法连接到它 我尝试用 浅蓝色 进行检查 它显示我的设备可连接并且似乎工作正常 但在我的应用程序中 当我发现
  • 视图水平和垂直不明确且布局复杂

    我有一个UIViewController在我的故事板上有 2 个水平并排的子视图 我添加了约束来将前缘和后缘固定为常数 20 点 并添加了另一个约束来保持宽度相等 如果我假设以下内容 应该可以计算每个子视图需要的宽度 子视图不重叠 不存在其
  • 当我打开特定的 XIB 文件时,Xcode 崩溃

    I had a XIB文件一直运行良好 直到今天 当我尝试在 Xcode 中打开它时 沙滩球出现 1 分钟后 Xcode 崩溃 其他的XIBs工作得很好 另外 如果我只是在我的设备上构建并运行项目 它也可以工作 并且 XIB 在应用程序中工
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • Xcode 本地化设置中没有加号或减号按钮

    我需要在两天内翻译 iOS 应用程序 但我的 XCode 版本 4 4 和 4 5 Developer Preview 都没有给我添加其他语言的选项 我只能选择单击 Make localized 但我只能选择英语 选择它后 Xcode 中的
  • iPhone,如何将一张图像叠加到另一张图像上以创建要保存的新图像? (水印)

    基本上 我想拍摄用户从照片库中选择的图像 然后应用水印 即右下角的三角形 上面有应用程序名称 我已经在 Photoshop 中用透明层制作了第二张图像 我尝试了一个函数 我不记得它的确切名称 但它涉及 CGIImages 和蒙版 这将两个图
  • 如何正确使用 nsoperationqueue 的 autoreleasepool

    我有一个正在重构的应用程序 我刚刚实现了多线程 以便 UI 可以运行得更流畅 在 iPhone 模拟器中 我没有遇到任何泄漏 但在运行 iOS 4 2 的 iPhone 3G 上进行测试时 出现了内存泄漏 我已经做了很多搜索来使用操作队列实

随机推荐

  • 后端配置跨域

    仅为记录 Configuration public class CorsConfig 当前跨域请求最大有效时长 这里默认1天 private static final long MAX AGE 24 60 60 private CorsCo
  • CAN分析仪、USBCAN卡连接失败常见问题

    CAN分析仪对CAN总线开发的工程师来说是很常用的工具 但是对第一次将USB连接到CAN上的人来说可能会遇到很多问题 本文列举可能会遇到的问题 然后列出解决方法 问题1 设备打开失败 如下图所示 可能原因 设备型号选错 解决办法 来可针对不
  • 逆向破解学习-单机斗地主

    试玩 破解思路 9000 是成功的代码 Hook代码 import de robv android xposed XC MethodHook import de robv android xposed XposedHelpers impor
  • 开发ssm框架软件系统常见问题及解决方法

    在SSM框架开发软件系统中 可能会遇到一些常见的问题 如下所述 1 配置文件错误 在SSM框架开发软件系统中 配置文件往往是一个非常重要的部分 当配置文件存在错误时 可能会导致软件系统无法正常运行 解决这个问题的方法是检查配置文件的语法 路
  • 计算机术语表达因果,我翻译的维基百科关于福多的词条(下)

    意向实在论 福多对丹尼特的批评 福多对所谓的标准实在论提出了批评 根据他自己的想法 这个观点可以被描绘为两个独立的断言 其中一个诉诸心理状态的内在结构并且断言这些状态是非关联的 另一个主张关注心理内容的语义学理论并且断言在这些内容的因果作用
  • linux创建、删除文件夹的软链接

    在 home tom 下有个叫 a 的文件夹 想在 home dataset 下建一个软链接 b 指向它 即 hom dataset b rightarrow home tom a Create ln s home tom a home d
  • Android流行UI布局 BottomNavigationView+ViewPager+Fragment的使用

    1 概述 Android端采用底部导航栏的app非常多 一般我们都采用RadioGroup RadiaButton来进行界面的切换 今天我们要讲的是一个新的控件BottomNavigationView 用于替换RadioGroup 这个控件
  • 1023 买书(完全背包问题求方案数)

    1 问题描述 小明手里有n元钱全部用来买书 书的价格为10元 20元 50元 100元 问小明有多少种买书方案 每种书可购买多本 输入格式 一个整数 n 代表总共钱数 输出格式 一个整数 代表选择方案种数 数据范围 0 n 1000 输入样
  • 【ESP8266 快速入门】示例5:Arduino环境实现OTA无线升级固件功能WebServer网页服务器方式

    主题 使用 ESP8266 Arduino环境实现OTA无线升级固件功能 由LED闪烁程序通过OTA升级为PWM呼吸灯程序 目录 主题 0 引言 1 环境准备 2 OTA步骤 2 1 OTA的基础程序 LED闪烁 2 2 OTA的升级程序
  • Mixin从理论到实践

    mixin从理论到实践 mixin从理论到实践 一 什么是mixin 二 使用mixin 三 mixin的合并策略 四 mixin辨析 五 个人实践 mixin从理论到实践 一 什么是mixin mixin混入 Vue js vuejs o
  • 查看Mysql引擎

    Mysql在V5 1之前默认存储引擎是MyISAM 在此之后默认存储引擎是InnoDB 查看默认存储引擎 查看当前mysql默认引擎 show variables like engine mysql gt show variables li
  • 虚拟机重置密码及Linux思维导图

    虚拟机重置密码操作步骤 1 输入reboot 重启 2 按键盘上的上下键 再按字母e 阻止正常开机 3 在quiet后面输入rd break console tty0 输入完成后按ctrl X来运行修改后的内核程序 4 重新挂载根目录 并给
  • 微信小程序中图片占满整个屏幕

    方案1 使用背景图 background image 此方案适用于 网络图片资源 因为 background image 不允许使用 本地路径图片资源 page overflow hidden position fixed backgrou
  • pytorch离线快速安装

    1 pytorch官网查看cuda版本对应的torch和torchvisionde 版本 ncvv V nvidia sim查看cuda对应的版本 2 离线下载对应版本 网址https download pytorch org whl to
  • NFS服务

    文章目录 1 nfs介绍 1 1 nfs特点 1 2 使用nfs的好处 1 3 nfs的体系组成 1 4 nfs的应用场景 2 nfs工作机制 2 1RPC 2 2 NIS 2 3 nfs工作机制 3 exports文件的格式 4 nfs管
  • 九数组分数(题解)

    九数组分数 1 2 3 9 这九个数字组成一个分数 其值恰好为1 3 如何组法 解题思路 观察题目可以发现本题主要考察的是全排列的知识 由数学知识可知 组成一个分数的值恰为1 3 分母应该为五位数 分子应为四位数 因此可以利用一个全排列 将
  • 50道Java集合经典面试题(收藏版)

    前言 来了来了 50道Java集合面试题也来啦 已经上传github https github com whx123 JavaHome 1 Arraylist与LinkedList区别 可以从它们的底层数据结构 效率 开销进行阐述哈 Arr
  • sass变量引入全局

    https www jianshu com p ab9ab999344b copy 本文以Sass做案例 Less的参考 基本配置大同小异 假如我们有一个Sass的全局变量common scss文件 路径 style common scss
  • 解决使用Nginx错误 Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING问题

    Failed to load resource net ERR INCOMPLETE CHUNKED ENCODING问题 先说解决办法 方法一 直接删除Nginx缓存文件即可 方法二 更改权限 问题描述 使用Nginx代理的服务 一直使用
  • Flutter 特定页面切换屏幕方向/iOS强制横屏/SystemChrome.setPreferredOrientations不起作用 看这里!...

    转载请标明出处 juejin im post 5c68da 本文出自 Wos的主页 我此刻的Flutter版本 Flutter 1 2 0 channel dev github com flutter flu Framework revis