From ed9918f183ea3302a5264b2807c3cc41e6996006 Mon Sep 17 00:00:00 2001 From: debuggerx Date: Fri, 2 Dec 2022 17:07:02 +0800 Subject: [PATCH] ensure new value applied. --- lib/ring_indicator.dart | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/ring_indicator.dart b/lib/ring_indicator.dart index 5224a7b..57a33c8 100644 --- a/lib/ring_indicator.dart +++ b/lib/ring_indicator.dart @@ -106,23 +106,26 @@ class _RingIndicatorState extends State { ticker = Ticker((_) { var diff = DateTime.now().difference(startTime).inMilliseconds; if (diff > 300) { + _applyChangeToSelfAndParent(newValue); return ticker?.stop(); } - if (mounted) { - setState(() { - _value = oldValue + (newValue - oldValue) * (diff / 300); - values[0] = LevelValue(_value); - }); - if (parent != null) { - for (var value in values.values) { - parent!.updateValue(value.incrementLevel()); - } - } - } + _applyChangeToSelfAndParent(oldValue + (newValue - oldValue) * (diff / 300)); }) ..start(); } + _applyChangeToSelfAndParent(double value) { + setState(() { + _value = value; + values[0] = LevelValue(_value); + }); + if (parent != null) { + for (var value in values.values) { + parent!.updateValue(value.incrementLevel()); + } + } + } + @override void initState() { super.initState();