在为单个小部件处理多个动画时,是否有最佳实践或一般模式?
例如,我有一个按钮,需要在加载时产生脉冲,然后在点按时收缩,它们分别是不同的动画。我目前的处理方式是通过拥有一个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,
),
);
}
}