Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何使FloatingActionButton设置动画?_Flutter_Dart - Fatal编程技术网

Flutter 如何使FloatingActionButton设置动画?

Flutter 如何使FloatingActionButton设置动画?,flutter,dart,Flutter,Dart,我想让我的FloatingActionButtons颜色不间断地改变,或者让我的FloatingActionButton变大而不是缩小,这样它看起来就像一个动画,可以引起用户的注意 我怎样才能做到这一点?不使用setState()的任何解决方案\u Delet2State(); } 类_Delet2State使用SingleTickerProviderStateMixin扩展状态{ AnimationController _AnimationController; 动画; @凌驾 void in

我想让我的
FloatingActionButtons
颜色不间断地改变,或者让我的
FloatingActionButton
变大而不是缩小,这样它看起来就像一个动画,可以引起用户的注意


我怎样才能做到这一点?不使用
setState()的任何解决方案您可以使用AnimationController来完成

class Delet2 extends StatefulWidget {
  @override
  _Delet2State createState() => _Delet2State();
}

class _Delet2State extends State<Delet2> with SingleTickerProviderStateMixin {
  AnimationController _animationController;
  Animation animation;

  @override
  void initState() {
    super.initState();
    _animationController =
        AnimationController(vsync: this, duration: Duration(seconds: 1));
    animation = ColorTween(begin: Colors.red, end: Colors.amber)
        .animate(_animationController);
    _animationController.repeat();
    _animationController.addListener(() {
      setState(() {});
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        onPressed: () {},
        backgroundColor: animation.value,
      ),
    );
  }
}
类Delet2扩展StatefulWidget{
@凌驾
_Delet2State createState()=>\u Delet2State();
}
类_Delet2State使用SingleTickerProviderStateMixin扩展状态{
AnimationController _AnimationController;
动画;
@凌驾
void initState(){
super.initState();
_动画控制器=
AnimationController(vsync:this,duration:duration(秒数:1));
动画=ColorTween(开始:Colors.red,结束:Colors.amber)
.设置动画(_animationController);
_animationController.repeat();
_animationController.addListener((){
setState((){});
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
浮动操作按钮:浮动操作按钮(
按下:(){},
背景颜色:animation.value,
),
);
}
}

您能补充一下不调用setState是什么意思吗?因为如果您想更改任何内容,那么您需要setState。显然。任何答案都会有帮助。如果您可以帮助我设置状态,那么我可以使用状态管理对其进行重构。我不喜欢设置状态的原因是我的应用程序非常复杂,因此,我想,每100毫秒重建一次整个小部件树可能会影响我的应用程序的性能。