Flutter: 在stateless widget中创建动画控制器

8
有没有办法在无状态的小部件中创建一个animationController?目前我无法在控制器构造函数中传递vsync:this...
1个回答

5
不行,因为StatelessWidget没有实现State,而SingleTickerProvidermixin仅适用于实现了它的类。如果你想要一个干净的解决方案,请查看flutter hooks,它们使您可以使用动画控制器,而无需使用StatefulWidget所需的样板代码。

2
你可以使用任何与 TickerProviderStateMixin 混合的 State - 例如,Scaffold.of() 方法会给你一个 ScaffoldState,你可以将其用作 vsync 参数。 - pskink
@pskink,但这并不排除我的答案是正确的吧?你不能直接使用无状态小部件与mixin混合。 此外,在这种情况下,如果您定义动画控制器,那么您将如何处理它们的释放? - HII
这篇来自flutter.dev的教程说:“当State对象被丢弃时,处理控制器以防止内存泄漏。”。https://flutter.dev/docs/development/ui/animations/tutorial - HII
1
我找到了一个解决方法,我将 Ticker 对象从父组件(有状态)传递给子组件(无状态),现在我能够在无状态小部件中使用 animationController。 - PiyushK
@PiyushK,你如何处理控制器? - HII

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接