#flutter #dart
Вопрос:
Поэтому я пытаюсь реализовать таймер обратного отсчета с GitHub, но я получаю ошибку, как показано на скриншоте. Сообщение об ошибке довольно четкое, но я не вижу, как его исправить… Я добавил два скриншота, которые, возможно, прояснят больше, чем просто код. У кого-нибудь из вас есть идея? 🙂
Заранее спасибо!
CountDownTimer _countDownTimer = CountDownTimer(
duration: kWorkDuration,
fillColor: Colors.pink,
onComplete: () {
setState(() async {
widget.timesCompleted[indexTimesCompleted] = Icon(
Icons.brightness_1_rounded,
color: Colors.pink,
size: 5.0,
);
indexTimesCompleted ;
await NDialog(
dialogStyle: DialogStyle(titleDivider: true),
title: Text("Timer Completed"),
content: Text("Time to break."),
actions: <Widget>[
ElevatedButton(
style: ButtonStyle(
backgroundColor: MaterialStateColor.resolveWith(
(states) => Colors.green),
),
child: Text("Start a short break"),
onPressed: () {}),
],
).show(context);
});
},
);
CircularCountDownTimer clock = CircularCountDownTimer(
controller: _clockController,
isReverseAnimation: true,
ringColor: Color(0xff0B0C19),
height: height,
width: width,
autoStart: false,
duration: _countDownTimer.duration * 60,
isReverse: true,
textStyle: TextStyle(color: Colors.white),
fillColor: _countDownTimer.fillColor,
backgroundColor: Color(0xFF2A2B4D),
strokeCap: StrokeCap.round,
onComplete: _countDownTimer.onComplete, //This is the faulty line
);
Комментарии:
1. это
CountDownTimer
класс, который вы написали? Если это так, не могли бы вы попробовать изменитьfinal Function onComplete
final VoidCallback onComplete
, чтобы посмотреть, поможет ли это решить проблему?2. @h8moss Это полностью сработало, большое спасибо! Я просто не могу найти кнопку, чтобы каким-то образом закрепить ваш комментарий в качестве ответа…
3. С удовольствием помогу! Я опубликовал свой комментарий в качестве ответа, если вы хотите отметить это как правильный ответ 🙂
Ответ №1:
Проблема в том, что вы объявили on complete
как любую функцию, а не как пустую функцию без аргументов. Чтобы исправить это, измените эту строку:
final Function onComplete;
к этому:
final VoidCallback onComplete;