颤振动画在首次渲染时不流畅

stu*_*low 4 flutter

为什么即使在首次运行英雄动画时也无法在屏幕导航上进行buildTransition转换?

如何始终制作完美的平滑动画?

亲切的问候

Gün*_*uer 9

您需要使用--release或构建--profile。如果从IDE运行--debug,则默认情况下将获得一个构建,该构建不适合衡量任何性能指标或动画或构建输出大小。

flutter run --profile
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,参见https://flutter.io/docs/testing/ui-performance

  • 谢谢!我非常喜欢这个社区 (3认同)
  • 如图所示,如果您有一个小小的标语“ debug”,则说明您使用的是JITter编译器,所有关于平滑度的押注都已关闭。 (2认同)

Von*_*uot 9

这是 flutter 中的一个已知问题,您必须首先“预热”图形 API (SkSL)。第三次运行后,通常它会变得平滑。

问题发生在 iOS 和 Android 中。

对于 iSO,延迟通常发生在金属 api 中,因为 Apple 最近放弃了对 OpenGL 的支持,这通常是实现 Skia 图形引擎的地方。

解决方法和临时解决方案可在此页面上找到。

第一次在 iOS/Android 上运行任何类型的动画或过渡时出现极端卡顿(发布版本)-skia 着色器编译 #61450

更新

Flutter 已经更新了他们关于这个问题的官方文档

减少移动设备上的着色器编译卡顿