我有一个按钮,启用时颜色为蓝色,禁用时颜色为黑色。我想要的是,当我启用该按钮时,颜色应逐渐从黑色变为蓝色,而不是立即改变,反之亦然。我该怎么办?
答案 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,容器将为您执行动画。