Flutter AnimatedContainer 与 AnimationController
Flutter AnimatedContainer vs AnimationController
我找不到两者之间的区别,也不知道为什么要优先使用一个。
在我看来,他们两个几乎做同样的事情。
为什么以及在什么地方你会在另一个之上使用一个?
AnimatedContainer
用于快速完成事情并用于简单用途,因为它使用隐式动画来动画其属性的变化,如颜色或大小(宽度,高度)的变化所以它制作动画为你而你不需要担心或写样板文件
但是,当您需要对要创建的动画进行更多控制时使用 AnimationController
并且当动画很复杂时,在这种情况下您需要执行显式动画(即使用控制器和动画显式对象而不是隐式对象,如 AnimatedContainer
的情况)
现在我可以为您提供一个示例代码,但如果您从官方 flutter 团队查看这个 series of videos 会更好,它解释了差异以及何时使用每个
这就像比较 TextFormField
和 TextEditingController
它们不一样,不能用来达到相同的目的
假设您希望在执行函数之前先完成动画。没有明确的方法来监视 AnimatedContainer
何时完成动画。
AnimationController
确实允许您使用 yourAnimatedController.addStatusListner((status) => ...)
之类的方法来监控此类事件,如此处
中所解释的那样
有这方面的用例。例如,您可能有一个项目列表,每个图块上都有动画。如果您需要从列表中删除动画图块,则需要确保该列表中 运行 的任何动画都先停止。使用 AnimatedContainer
.
并不总是那么容易
我找不到两者之间的区别,也不知道为什么要优先使用一个。
在我看来,他们两个几乎做同样的事情。
为什么以及在什么地方你会在另一个之上使用一个?
AnimatedContainer
用于快速完成事情并用于简单用途,因为它使用隐式动画来动画其属性的变化,如颜色或大小(宽度,高度)的变化所以它制作动画为你而你不需要担心或写样板文件
但是,当您需要对要创建的动画进行更多控制时使用 AnimationController
并且当动画很复杂时,在这种情况下您需要执行显式动画(即使用控制器和动画显式对象而不是隐式对象,如 AnimatedContainer
的情况)
现在我可以为您提供一个示例代码,但如果您从官方 flutter 团队查看这个 series of videos 会更好,它解释了差异以及何时使用每个
这就像比较 TextFormField
和 TextEditingController
它们不一样,不能用来达到相同的目的
假设您希望在执行函数之前先完成动画。没有明确的方法来监视 AnimatedContainer
何时完成动画。
AnimationController
确实允许您使用 yourAnimatedController.addStatusListner((status) => ...)
之类的方法来监控此类事件,如此处
有这方面的用例。例如,您可能有一个项目列表,每个图块上都有动画。如果您需要从列表中删除动画图块,则需要确保该列表中 运行 的任何动画都先停止。使用 AnimatedContainer
.