diff --git a/packages/flutter/lib/src/material/dropdown.dart b/packages/flutter/lib/src/material/dropdown.dart index f9387e686e..a75e7c3dcd 100644 --- a/packages/flutter/lib/src/material/dropdown.dart +++ b/packages/flutter/lib/src/material/dropdown.dart @@ -131,7 +131,7 @@ class _DropdownMenuItemButton extends StatefulWidget { } class _DropdownMenuItemButtonState extends State<_DropdownMenuItemButton> { - CurvedAnimation? _opacityAnimation; + late CurvedAnimation _opacityAnimation; @override void initState() { @@ -146,12 +146,12 @@ class _DropdownMenuItemButtonState extends State<_DropdownMenuItemButton> oldWidget.route.animation != widget.route.animation || oldWidget.route.selectedIndex != widget.route.selectedIndex || widget.route.items.length != oldWidget.route.items.length) { + _opacityAnimation.dispose(); _setOpacityAnimation(); } } void _setOpacityAnimation() { - _opacityAnimation?.dispose(); final double unit = 0.5 / (widget.route.items.length + 1.5); if (widget.itemIndex == widget.route.selectedIndex) { _opacityAnimation = CurvedAnimation( @@ -205,7 +205,7 @@ class _DropdownMenuItemButtonState extends State<_DropdownMenuItemButton> @override void dispose() { - _opacityAnimation?.dispose(); + _opacityAnimation.dispose(); super.dispose(); } @@ -227,7 +227,7 @@ class _DropdownMenuItemButtonState extends State<_DropdownMenuItemButton> child: child, ); } - child = FadeTransition(opacity: _opacityAnimation!, child: child); + child = FadeTransition(opacity: _opacityAnimation, child: child); if (kIsWeb && dropdownMenuItem.enabled) { child = Shortcuts(shortcuts: _webShortcuts, child: child); }