diff --git a/lib/src/colorize.dart b/lib/src/colorize.dart index e6a4127..4ed0cdf 100644 --- a/lib/src/colorize.dart +++ b/lib/src/colorize.dart @@ -141,7 +141,7 @@ class _RotatingTextState extends State @override void dispose() { - _controller.dispose(); + _controller?.dispose(); super.dispose(); } @@ -204,9 +204,7 @@ class _RotatingTextState extends State _index++; } - if (_controller != null) _controller.dispose(); - - setState(() {}); + if (mounted) setState(() {}); _controller = new AnimationController( duration: _texts[_index]['speed'] * _texts[_index]['text'].length, @@ -231,7 +229,7 @@ class _RotatingTextState extends State curve: Interval(0.0, 1.0, curve: Curves.easeIn))) ..addStatusListener(_animationEndCallback); - _controller.forward(); + _controller?.forward(); } void _animationEndCallback(state) { diff --git a/lib/src/fade.dart b/lib/src/fade.dart index fce864e..6086e00 100644 --- a/lib/src/fade.dart +++ b/lib/src/fade.dart @@ -149,15 +149,13 @@ class _RotatingTextState extends State _texts.add({'text': widget.text[i], 'pause': _pause}); } } - _nextAnimation(); } @override void dispose() { - _controller - ..stop() - ..dispose(); + _controller?.stop(); + _controller.dispose(); super.dispose(); } @@ -214,9 +212,7 @@ class _RotatingTextState extends State _index++; } - if (_controller != null) _controller.dispose(); - - setState(() {}); + if (mounted) setState(() {}); _controller = new AnimationController( duration: _duration, @@ -230,14 +226,14 @@ class _RotatingTextState extends State parent: _controller, curve: Interval(0.8, 1.0, curve: Curves.linear))) ..addStatusListener(_animationEndCallback); - _controller..forward(); + _controller.forward(); } void _setPause() { bool isLast = _index == widget.text.length - 1; _isCurrentlyPausing = true; - setState(() {}); + if (mounted) setState(() {}); // Handle onNextBeforePause callback if (widget.onNextBeforePause != null) @@ -265,7 +261,7 @@ class _RotatingTextState extends State pause = _texts[_index]['pause'].inMilliseconds; left = widget.duration.inMilliseconds; - _controller.stop(); + _controller?.stop(); _setPause(); diff --git a/lib/src/rotate.dart b/lib/src/rotate.dart index 071c39c..6d8bbe6 100644 --- a/lib/src/rotate.dart +++ b/lib/src/rotate.dart @@ -157,9 +157,8 @@ class _RotatingTextState extends State @override void dispose() { - _controller - ..stop() - ..dispose(); + _controller?.stop(); + _controller?.dispose(); super.dispose(); } @@ -222,9 +221,7 @@ class _RotatingTextState extends State _index++; } - if (_controller != null) _controller.dispose(); - - setState(() {}); + if (mounted) setState(() {}); if (widget.transitionHeight == null) { _transitionHeight = widget.textStyle.fontSize * 10 / 3; @@ -278,7 +275,7 @@ class _RotatingTextState extends State bool isLast = _index == widget.text.length - 1; _isCurrentlyPausing = true; - setState(() {}); + if (mounted) setState(() {}); // Handle onNextBeforePause callback if (widget.onNextBeforePause != null) @@ -301,7 +298,7 @@ class _RotatingTextState extends State } else { pause = _texts[_index]['pause'].inMilliseconds; - _controller.stop(); + _controller?.stop(); _setPause(); diff --git a/lib/src/scale.dart b/lib/src/scale.dart index 8b979e7..53befd2 100644 --- a/lib/src/scale.dart +++ b/lib/src/scale.dart @@ -162,10 +162,8 @@ class _RotatingTextState extends State @override void dispose() { - if (_controller != null) - _controller - ..stop() - ..dispose(); + _controller?.stop(); + _controller?.dispose(); super.dispose(); } @@ -225,8 +223,6 @@ class _RotatingTextState extends State _index++; } - if (_controller != null) _controller.dispose(); - setState(() {}); _controller = new AnimationController( diff --git a/lib/src/text_liquid_fill.dart b/lib/src/text_liquid_fill.dart index 0076b1f..66a8c99 100644 --- a/lib/src/text_liquid_fill.dart +++ b/lib/src/text_liquid_fill.dart @@ -101,16 +101,10 @@ class _TextLiquidFillState extends State @override void dispose() { - if (_waveController != null) - _waveController - ..stop() - ..dispose(); - - if (_loadController != null) - _loadController - ..stop() - ..dispose(); - + _waveController?.stop(); + _waveController?.dispose(); + _loadController?.stop(); + _loadController?.dispose(); super.dispose(); } diff --git a/lib/src/typer.dart b/lib/src/typer.dart index 78651e6..ecd491f 100644 --- a/lib/src/typer.dart +++ b/lib/src/typer.dart @@ -133,10 +133,8 @@ class _TyperState extends State @override void dispose() { - if (_controller != null) - _controller - ..stop() - ..dispose(); + _controller?.stop(); + _controller?.dispose(); super.dispose(); } @@ -187,9 +185,7 @@ class _TyperState extends State _index++; } - if (_controller != null) _controller.dispose(); - - setState(() {}); + if (mounted) setState(() {}); _controller = new AnimationController( duration: _texts[_index]['speed'] * _texts[_index]['text'].length, @@ -207,7 +203,7 @@ class _TyperState extends State bool isLast = _index == widget.text.length - 1; _isCurrentlyPausing = true; - setState(() {}); + if (mounted) setState(() {}); // Handle onNextBeforePause callback if (widget.onNextBeforePause != null) diff --git a/lib/src/typewriter.dart b/lib/src/typewriter.dart index e0c4407..7770b85 100644 --- a/lib/src/typewriter.dart +++ b/lib/src/typewriter.dart @@ -151,11 +151,8 @@ class _TypewriterState extends State @override void dispose() { - if (_controller != null) { - _controller - ..stop() - ..dispose(); - } + _controller?.stop(); + _controller?.dispose(); super.dispose(); } @@ -229,9 +226,7 @@ class _TypewriterState extends State _index++; } - if (_controller != null) _controller.dispose(); - - setState(() {}); + if (mounted) setState(() {}); _controller = new AnimationController( duration: _texts[_index]['speed'] * _texts[_index]['text'].length, @@ -250,7 +245,7 @@ class _TypewriterState extends State bool isLast = _index == widget.text.length - 1; _isCurrentlyPausing = true; - setState(() {}); + if (mounted) setState(() {}); // Handle onNextBeforePause callback if (widget.onNextBeforePause != null)