当我使用AnimationController时,它需要一个vsync参数。我已经研究过了,我应该使用TickerProviderStateMixin
还是SingleTickerProviderStateMixin
,目前我仍然不知道它们之间有什么区别。如果你能给我一个解释的话,谢谢。参考资料:https://api.flutter.dev/flutter/widgets/SingleTickerProviderStateMixin-mixin.html https://api.flutter.dev/flutter/widgets/TickerProviderStateMixin-mixin.html
发布于 2022-09-27 03:55:30
当您使用单个AnimationController
时,使用SingleTickerProviderStateMixin
。
如果需要多个AnimationController
,请使用TickerProviderStateMixin
。
我们需要代码片段下面的TickerProviderStateMixin
,因为我们有两个AnimationController
class _TrickerExampleState extends State<TrickerExample>
with TickerProviderStateMixin {
late AnimationController controller1;
late Animation<double> fadeAnimation;
late AnimationController controller2;
late Animation<Alignment> positionAnimation;
发布于 2022-09-27 02:58:12
记住Ticker的主要建议:每个动画帧调用它的回调一次。这就是为什么AnimationController需要一个Ticker,这也是为什么取决于您需要的AnimationControllers数量,一个Mixin比他们说的更有效率。因此,如果您可以使用一个AnimationController创建所有动画,那么使用SingleTickerProviderStateMixin。如果您需要一个以上的AnimationController,那么使用TickerProviderStateMixin。
发布于 2022-09-27 02:58:15
正如文档所述,它们将提供滴答器。
不同之处在于,SingleTickerProviderStateMixin
提供了一个Ticker,并且MixinApplication
比TickerProviderStateMixin
少
我想我们得知道Ticker是什么。这里有一个简短的解释:使用Flutter的动画框架,这是通过Ticker + TickerProvider实现的。
滴答是我们动画的刷新率。当我们的时钟被隐藏时,这就是我们想要暂停的。 TickerProvider通常是用SingleTickerProviderStateMixin实现的,它是Ticker和外部因素之间的绑定。
这里是关于它的完整文章:vsync/
https://stackoverflow.com/questions/73861656
复制相似问题