启用或禁用按钮时对颜色变化进行动画处理

时间:2019-02-14 06:13:00

标签: dart flutter

我有一个按钮,启用时颜色为蓝色,禁用时颜色为黑色。我想要的是,当我启用该按钮时,颜色应逐渐从黑色变为蓝色,而不是立即改变,反之亦然。我该怎么办?

1 个答案:

答案 0 :(得分:3)

使用AnimatedContainer,当使用setState之类的值将其重建为其他值时,使用特定属性对其进行一次构建,然后对该颜色进行动画处理。或者,如果该值是从外部传递的。

class AnimatedButton extends StatelessWidget {
 final Color widgetColor;

 AnimatedButton({this.widgetColor});

 build(){
  return AnimatedContainer(
   color: widgetColor,
   duration: Duration(seconds: 2),
   child: Text('Some text')
 );
}

您可以在setState中更改_passedInColorValue,也可以在重建时通过传递与父项不同的值来更改_passedInColorValue,容器将为您执行动画。