无法在CountDownTimer中更改endTime

问题描述 投票:0回答:1

我想在我的flutter应用程序中创建一个倒数计时器,并且我使用了[[flutter_countdown_timer来制作它。在我的应用中,我使用了以下代码;

CountdownTimer( endTime: 1594829147719, textStyle: TextStyle( fontFamily: 'Montserrat', fontSize: 12, color: Colors.white), defaultDays: "==", defaultHours: "--", defaultMin: "**", defaultSec: "++", daysSymbol: "Days ", hoursSymbol: "Hrs ", minSymbol: "Mins ", secSymbol: "Secs", ),
在上面,如果我将

endTime

1594829147719更改为其他值,此计时器将停止工作并且不提供任何输出。 这可能是什么原因,我该如何解决?
flutter dart flutter-layout dart-pub
1个回答
0
投票
您可以从头开始创建计时器。

int timerSeconds; DateTime startedAt; StartTimer(){ _timer= new Timer.periodic(oneSec, (Timer t) => { setState(() { startedAt=DateTime.now(); seconds--; }) }); } //to format the timer text String _printDuration(Duration duration) { String twoDigits(int n) { if (n >= 10) return "$n"; return "0$n"; } String twoDigitMinutes = twoDigits(duration.inMinutes.remainder(60)); String twoDigitSeconds = twoDigits(duration.inSeconds.remainder(60)); return "${twoDigits(duration.inHours)}:$twoDigitMinutes:$twoDigitSeconds"; } String getTimerText(){ int timePassed= DateTime.now().difference(startedAt).inSeconds; timerTextString=_printDuration(Duration(seconds: timerText-timePassed)); }

然后在处置时停止计时器。

@override void dispose() { _timer.cancel(); super.dispose(); }

然后像这样在文本小部件中调用文本字符串

Text(getTimerText());

© www.soinside.com 2019 - 2024. All rights reserved.