Flutter AnimatedContainer 与 AnimationController

Flutter AnimatedContainer vs AnimationController

我找不到两者之间的区别,也不知道为什么要优先使用一个。

在我看来,他们两个几乎做同样的事情。

为什么以及在什么地方你会在另一个之上使用一个?

AnimatedContainer 用于快速完成事情并用于简单用途,因为它使用隐式动画来动画其属性的变化,如颜色或大小(宽度,高度)的变化所以它制作动画为你而你不需要担心或写样板文件

但是,当您需要对要创建的动画进行更多控制时使用 AnimationController 并且当动画很复杂时,在这种情况下您需要执行显式动画(即使用控制器和动画显式对象而不是隐式对象,如 AnimatedContainer 的情况) 现在我可以为您提供一个示例代码,但如果您从官方 flutter 团队查看这个 series of videos 会更好,它解释了差异以及何时使用每个

这就像比较 TextFormFieldTextEditingController

它们不一样,不能用来达到相同的目的

假设您希望在执行函数之前先完成动画。没有明确的方法来监视 AnimatedContainer 何时完成动画。

AnimationController 确实允许您使用 yourAnimatedController.addStatusListner((status) => ...) 之类的方法来监控此类事件,如此处

中所解释的那样

有这方面的用例。例如,您可能有一个项目列表,每个图块上都有动画。如果您需要从列表中删除动画图块,则需要确保该列表中 运行 的任何动画都先停止。使用 AnimatedContainer.

并不总是那么容易