flutter 如何在列表视图生成器中处理多个倒计时计时器

xbp102n0  于 2022-12-14  发布在  Flutter
关注(0)|答案(2)|浏览(200)

我正在使用listView构建器进行视图,并且此列表的每个数据都来自http响应。我正在设置构建器返回小部件中的所有数据,但我不知道如何管理listview.builder的每个子项的计时器。我从响应中获得的开始和结束时间。
我也张贴了更清晰的图像,正是我需要的。

wqsoz72f

wqsoz72f1#

在listview builder内部,您可以添加倒计时计时器:

CountdownTimer(
  textStyle: TextStyle(
      fontSize: 14, color: Colors.red, fontWeight: FontWeight.bold),
  onEnd: onEnd,
  endTime: countRemainsTime(item.startDateTime, item.endDateTime),
  endWidget: Text(
    "Deal has ended",
    style: TextStyle(
        fontSize: 14,
        color: appColorDeepGreen,
        fontWeight: FontWeight.bold),
  ),
);

并使用以下方法计算剩余时间:

var current = DateTime.now();

countRemainsTime(String startTime, String endTime) {
var end = DateTime.fromMillisecondsSinceEpoch(int.parse(endTime));

var countdowndiff = end.difference(current).inSeconds;

var finalTimer = current.millisecondsSinceEpoch +
    Duration(seconds: countdowndiff).inMilliseconds;

controller = CountdownTimerController(
    endTime: finalTimer, onEnd: onEnd, vsync: this);

return finalTimer;

}

kuuvgm7e

kuuvgm7e2#

将此库添加到pubspec.yaml文件:flutter_countdown_timer: ^4.1.0并使用上面代码

相关问题