Widget не обновляет при Timer.periodic
Почему deleteTimerString не обновляется
Widget ListItem(.......) {
String deleteTimerString = '';
const oneSec = const Duration(seconds: 1);
Timer.periodic(
oneSec,
(Timer timer) => setState(
() {
DateTime now = DateTime.now();
Duration diff = DateTime.parse(currentSorol.deleteDate).difference(now);
deleteTimerString = diff.toString();
},
),);
return Container(
..............
ListTile(
title: Text(
deleteTimerString
..............
);
}
Ответы (1 шт):
Автор решения: NoProgress
→ Ссылка
Решил проблему использовав timer_builder 1.3.0 библиотеку
Widget timeToDelete(DateTime deleteDate) {
const oneSec = const Duration(seconds: 1);
return TimerBuilder.periodic(oneSec, builder: (context) {
DateTime now = DateTime.now();
Duration diff = deleteDate.difference(now);
return ListTile(
title: Text(
diff.toString(),
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 10, color: Colors.red),
),
);
});
}