Flutter列表中倒计时-创新互联
1、在实体类中增加Timer类型的字段
为竞秀等地区用户提供了全套网页设计制作服务,及竞秀网站建设行业解决方案。主营业务为成都网站建设、做网站、竞秀网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!bean{Timer timer;
var countdownSeconds;//倒计时剩余秒数
String showTimeName;//显示在item中的字符串
}
2、在获取到接口数据后开启倒计时
_httpExpressList(){HttpApplication.getInstance().expressList(callBack: (result){ if(result !=null){var dataList = result['list'] as List;
var dateNo = DateTime.now();
for(int i = 0; i< dataList.length; i++){ PromotionExpressItemBean _promotionExpressItemBean = PromotionExpressItemBean.fromJson(dataList[i]);
var diff = DateCountDownUtil.difference(_promotionExpressItemBean.endTime,dateNo);
_promotionExpressItemBean.countdownSeconds = diff;
_promotionExpressItemBean.timer = _startTimer(_promotionExpressItemBean);
_promotionExpressList.add(_promotionExpressItemBean);
}
setState(() {});
}
},errorCallBack: (error){});
}
_cancelTimer(){if(_promotionExpressList.length>0){ for(int i =0;i<_promotionExpressList.length;i++){_promotionExpressList[i].timer.cancel();
}
}
}
_startTimer(PromotionExpressItemBean promotionExpressItemBean){return Timer.periodic(Duration(seconds: 1), (timer){ promotionExpressItemBean.countdownSeconds -=1;
promotionExpressItemBean.showTimeName = DateCountDownUtil.constructTime(promotionExpressItemBean.countdownSeconds);
//DateCountDownUtil转天时分秒的工具类
if(promotionExpressItemBean.countdownSeconds<=0){promotionExpressItemBean.timer.cancel();
promotionExpressItemBean.showTimeName="已结束";
}
setState(() { });
});
}
@override
void dispose() {// TODO: implement dispos
_cancelTimer();
super.dispose();
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享标题:Flutter列表中倒计时-创新互联
文章链接:http://pwwzsj.com/article/cojhhj.html