我需要一个能引起用户注意的按钮。我想到的第一个想法是添加一个 Flink 动画。我真的不知道该怎么做,但我试着用下面的代码使它工作:
Timer timer = new Timer(new Duration(seconds: 1), () {
//basic logic to change the color variable here
setState(() {});
});
很简单,每隔一秒调用一次setState
,然后再次创建小部件。
但是它不起作用,计时器只被调用一次,除此之外,在Timer
中调用setState
在我看来是错误的。
有更好的办法吗?
4条答案
按热度按时间wlp8pajw1#
您可以使用
AnimationController
和FadeTransition
小部件以简单的方式实现这一点,下面是代码:用法:
DartPad example
结果:
pu82cl6c2#
你也可以用这种方法来做。我的逻辑有点不同,我用交替的动画。一旦动画完成了,我就回来了。
即:
向前-〉向后
向后-〉向前
等等
jfgube3f3#
以下是来自the answer by @nitishk72的示例,但代码更新为null safety和更新的Flutter版本。
结果:
代码:
你可以只把这个复制到DartPad.dev,它就会工作:)
jdgnovmf4#
目前的答案是伟大的,但不包括不透明 Flink (重复淡入,淡出),您可以使用以下小部件,如果这是您的目标:
基于FadeTransition