防止动画立即播放

时间:2019-06-28 15:53:28

标签: flutter dart flutter-animation

我想点一下动画。如果用户点击一个按钮,则仅动画开始,并且在一段时间后应停止。这是我的代码:

Y

以上代码用于动画。

AnimationController _animationController;
Animation<double> _animation;
@override
initState(){
 _animationController = AnimationController(
   vsync: this,
   duration: Duration(seconds: 3),
   lowerBound: 0.5,
   upperBound: 1.0,
 );
  _animation = CurvedAnimation(parent: _animationController, curve: Curves.bounceInOut);
_animation.addListener(() {
  setState(() {});
});
_animationController.forward();
}
 @override
 dispose(){
   _animationController.dispose();
  super.dispose();
}

我喜欢上面的代码。但是,当我运行该应用程序时,无需单击该按钮即可自动启动动画。但是我只想在用户点击按钮时提供动画。当用户按下按钮时,只有动画开始;而当按下按钮时,动画应该停止。 就我而言,动画会自动开始。当用户点击按钮时,按钮应弹起。

2 个答案:

答案 0 :(得分:2)

之所以会这样,是因为您在initState中开始了动画:

_animationController.forward();

删除该行,直到您点击它才开始。
另外,由于Scale本身会处理其状态,因此以下代码是不必要的:

_animation.addListener(() {
  setState(() {});
});

如果您也从自己的initState方法中删除了此方法,就可以了。

答案 1 :(得分:0)

删除_animationController.forward();从initState并将其放在GesturesDetector的ontab方法中