如何在同一个小部件上管理多个动画?

时间:2019-04-15 07:59:36

标签: android dart flutter flutter-animation

在为单个小部件处理多个动画时,是否有最佳实践或一般模式?

例如,我有一个按钮,需要在加载时产生脉冲,然后在点按时收缩,它们分别是不同的动画。我目前的处理方式是通过拥有一个PulsingButton类和一个ShrinkingButton类,它们每个都返回一个AnimatedBuilder,并且我有一个布尔“ buttonPressed”,当轻按按钮时,它的setState会发生变化,然后触发页面跳转。根据buttonPressed的值返回PulsingButton()或ShrinkingButton()。

这感觉超级hacky,显然不能扩展,并且只想知道这里的标准(如果有)。谢谢!

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: _startAnimation,
      child: widget.buttonPressed
          ? ShrinkingButton(              //AnimatedBuilder
              controller: _controller,
              startingRadius: widget.radius,
            )
          : PulsingButton(               //AnimatedBuilder
              controller: _controller,
              startingRadius: widget.radius,
            ),
    );
  }
}

0 个答案:

没有答案