【问题标题】:Flutter : Creating animation controller in stateless widgetFlutter:在无状态小部件中创建动画控制器
【发布时间】:2020-08-01 09:22:28
【问题描述】:

有没有办法在无状态小部件中创建动画控制器?目前我无法在控制器构造函数中传递 vsync:this ...

【问题讨论】:

    标签: flutter flutter-animation


    【解决方案1】:

    不,你不能,因为 StatelessWidget 没有实现 State SingleTickerProvider mixin 被定义为仅适用于实现它的类 如果您正在寻找一个干净的解决方案,请参阅flutter hooks,如果您使用StatefulWidget,他们可以让您使用动画控制器而无需样板。

    【讨论】:

    • 您可以使用任何与TickerProviderStateMixin 混合的State - 例如Scaffold.of() 方法为您提供ScaffoldState,您可以将其用作vsync 参数
    • @pskink 但这并没有放弃我的答案,对吧?在这种情况下,如果您定义动画控制器,您也不能直接将无状态小部件与 mixin 一起使用,您将如何处理它们?
    • 这篇来自 flutter.dev 的教程说“当状态对象被丢弃以防止内存泄漏时释放控制器。” flutter.dev/docs/development/ui/animations/tutorial
    • 我找到了一个解决方法,我将 Ticker 对象从父级(有状态)传递给子级(无状态),所以现在我可以在无状态小部件中使用 animationController
    猜你喜欢
    • 2021-09-15
    • 2018-04-12
    • 2018-09-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2020-03-18
    • 2021-08-27
    相关资源
    最近更新 更多