【发布时间】:2020-03-05 04:52:57
【问题描述】:
我有一个 GridView,它显示网格中项目的自定义小部件。这些项目有一个动画,当它们出现在网格中时,它们的大小从 0% 缩放到 100%,使用 AnimationController.forward() 命令。
我的希望是,当网格中的项目列表发生变化并且其中一个项目不再在列表中时,我想在从树中删除小部件之前反转动画,以动画它的删除来自网格。
我尝试在小部件的 dispose 方法中执行 AnimationController.reverse(),但这似乎不起作用。
有没有办法在小部件的生命周期结束时为其设置动画?
【问题讨论】:
-
我认为您无法在 dispose 上为其设置动画,因为为时已晚,并且小部件已被删除。您需要先启动移除动画,并设置回调以在动画完成后从树中移除小部件
-
问题是,提供给 GridView 的列表是动态的,除非我维护网格中所有项目的列表并将其与从服务器收到的新列表进行比较,否则我'我不确定我怎么知道该物品在它消失之前“离开”了?这可能最终是我需要做的,以完成我所追求的。谢谢
-
我建议您查看 AnimatedSwitcher 小部件。了解它是如何工作的,也许你会知道如何实现这样的事情。或者你可以使用 AnimatedSwitcher 为整个网格设置动画。
-
找到解决方案了吗?
标签: animation flutter widget lifecycle