Rive Animation.asset 在 setState 后停止动画

问题描述 投票:0回答:1

我想使用 Rive 在导航栏中制作动画图标。 我在 StatefulWidget 中有一个 NavigationBar 小部件。当我调用 setState 时,目的地(在导航栏中)会重新绘制,并且 Rive 动画会中断并闪烁。 如何将 Rive 与导航栏一起使用?

我尝试将 Rive.asset 移动到其他小部件。它不起作用,当父小部件调用 serState 时,有状态总是执行 initState。

flutter dart animation statefulwidget rive
1个回答
0
投票

我也是,这是我自己解决的方法

问题

我有一个返回小部件的方法,其中包括“Asset”文件夹中的几个 Rive 动画。

调用setState时,动画无法触发(事件监听没有响应),动画没有动画,只是静态显示。

解决方案

尽管这听起来像是一个奇怪的解决方案:

我将我的方法(前面提到的)变成了 Future,并使用了 FutureBuilder。之后,效果很好。

为什么?

凭借现在制作 Rive 动画的一些知识,并且不自称是专家,我只能猜测。

我认为,FutureBuilder 只是确保创建一个新的 Widget,而在 setState 之后,Widget 就“损坏”了。因此,通过制作一个新的 Widget,我不需要处理“损坏”的 Widget。

但是,我应该说,我没有看到该解决方案有任何性能变化。

© www.soinside.com 2019 - 2024. All rights reserved.