Flutter 倒计时
Flutter 倒计时 ??写一个倒计时定时器听起来真的好简单,然而在 Flutter
里面写这个东西还是挺坑的。原本以为创建一个 Timer
就一切都搞定了,但并没办法实时获取倒计时的进度。
void countdown(){
Timer timer = new Timer(new Duration(seconds: 10), () {
// 只在倒计时结束时回调
});
}
??看了一下源码,我们还可以创建一个周期性的 Timer,从打印结果可以看到
Timer
的 tick 是从1开始的。void countdown(){
Timer countdownTimer =new Timer.periodic(new Duration(seconds: 1), (timer) {
print(countdownTimer.tick);
}
}
【Flutter 倒计时】??我们修改一下做一个倒计时获取重新获取验证码的功能。
Timer _countdownTimer;
String _codeCountdownStr = '获取验证码';
int _countdownNum = 59;
void reGetCountdown() {
setState(() {
if (_countdownTimer != null) {
return;
}
// Timer的第一秒倒计时是有一点延迟的,为了立刻显示效果可以添加下一行。
_codeCountdownStr = '${_countdownNum--}重新获取';
_countdownTimer =
new Timer.periodic(new Duration(seconds: 1), (timer) {
setState(() {
if (_countdownNum > 0) {
_codeCountdownStr = '${_countdownNum--}重新获取';
} else {
_codeCountdownStr = '获取验证码';
_countdownNum = 59;
_countdownTimer.cancel();
_countdownTimer = null;
}
});
});
});
} // 不要忘记在这里释放掉Timer
@override
void dispose() {
_countdownTimer?.cancel();
_countdownTimer = null;
super.dispose();
}
推荐阅读
- 164《中考倒计时28~一模成绩出来了》
- Flutter的ListView
- 运用flutter|运用flutter 构建一个发布版(release)APK
- Flutter自定义view|Flutter自定义view —— 闯关进度条
- Flutter|Flutter SwiftUI React 对比
- flutter设置沉浸式状态栏
- 科三考试倒计时1
- 2019-12-02|2019-12-02 flutter的环境配置
- 姑娘,加油
- Flutter开发之布局Widget