我正在尝试学习Dart,并遇到如下定期计时器的问题.
void changeImage(){
imgUrl = images.elementAt(count++);
}
startPeriodic(sec){
return new Timer.periodic(new Duration(seconds:sec), changeImage);
}
Run Code Online (Sandbox Code Playgroud)
编辑说:参数类型'changeImage'不能分配给参数类型'(Timer)→void'
你的任何建议Dart-maestros在那里将不胜感激.
根据Timer API,回调接收类型的参数Timer,因此您的回调方法应如下所示:
void changeImage(Timer t){
imgUrl = images.elementAt(count++);
}
Run Code Online (Sandbox Code Playgroud)
这与仅使用不同new Timer(),后者在没有参数的情况下进行回调.原因是如果不再需要,可以在回调方法中取消Timer.