我正在尝试学习Dart,并遇到如下定期计时器的问题。
void changeImage(){
imgUrl = images.elementAt(count++);
}
startPeriodic(sec){
return new Timer.periodic(new Duration(seconds:sec), changeImage);
}
编辑说:参数类型'changeImage'不能分配给参数类型'(Timer)→void'
你们的任何建议Dart-maestros都会受到赞赏。
答案 0 :(得分:6)
根据Timer API,回调会收到Timer
类型的参数,因此您的回调方法应如下所示:
void changeImage(Timer t){
imgUrl = images.elementAt(count++);
}
这与仅使用new Timer()
不同,{{1}}采用不带参数的回调。原因是如果不再需要,可以在回调方法中取消Timer。