Timer.periodic回调参数类型

时间:2014-01-29 10:44:11

标签: dart

我正在尝试学习Dart,并遇到如下定期计时器的问题。

void changeImage(){
  imgUrl = images.elementAt(count++);
}

startPeriodic(sec){
  return new Timer.periodic(new Duration(seconds:sec), changeImage);
}

编辑说:参数类型'changeImage'不能分配给参数类型'(Timer)→void'

你们的任何建议Dart-maestros都会受到赞赏。

1 个答案:

答案 0 :(得分:6)

根据Timer API,回调会收到Timer类型的参数,因此您的回调方法应如下所示:

void changeImage(Timer t){
  imgUrl = images.elementAt(count++);
}

这与仅使用new Timer()不同,{{1}}采用不带参数的回调。原因是如果不再需要,可以在回调方法中取消Timer。