iOS 模拟器在 Apple M1 上滚动太快

iOS Simulator scrolls too fast on Apple M1

我是 运行 一个 flutter 项目,当在模拟器上拖动任何列表或滚动视图时,它滚动时用力太大,几乎不可能到达我需要的行。

这只发生在模拟器中,它似乎在真实设备上运行良好。另外,当我迁移到 Apple M1 MacBook Pro 时,这个问题就开始了。

有什么想法吗?

这可能是因为使用 ARM 使仿真器速度更快。

它是唯一一个加速动画吗?也许还有更多。如果是这样,请设置 timeDilatation.

import 'package:flutter/scheduler.dart' show timeDilation;

void main() {
  timeDilation = 2.0;
  runApp(new MyApp());
}

我遇到过类似的问题,但就我而言,问题与 speed 无关,而是不同的东西。

具体来说,如果您将 iOS 模拟器强制设置为 运行 在 Rosetta 下,您会发现它按预期工作。不知道为什么,但这就是我正在经历的。始终可重现 1.22.5(稳定)。

在 Rosetta 中 运行,右键单击 Xcode 并选择“显示包内容”,从那里导航到“内容 > 开发人员 > 应用程序”,在那里你会找到模拟器应用程序。如果您右键单击它并选择“获取信息”,您将找到 运行 使用 Rosetta 的选项。

更新 14/9/2021: Xcode 12.5.1 不再需要上述解决方法。滚动开箱即用。

如果您使用的是 AndroidStudio,请试试这个。

  1. 找到 'Flutter Performance' 并打开。

  1. 启用慢速动画

模拟器滚动会慢很多。

一旦您在针对 arm64 的情况下 运行 应用程序,Jank 就完全消失了。

如果您的依赖项包含本机二进制文件,请不要这样做 一个这样的例子是 google_maps_flutter,他们不提供 arm64 二进制文件,因此,试图编译M1 上的项目本机将导致错误。

打开 xcode 中应用程序的 ios 文件夹,点击 Runner 并编辑 Build Settings,使 Architectures 指向 arm64Excluded Architectures 不包含 arm64

(虽然这些动图只有10秒长,但超过2MB,无法嵌入,抱歉)