diff --git a/packages/flutter/lib/src/material/dropdown.dart b/packages/flutter/lib/src/material/dropdown.dart index e948a87a02..a115b0982b 100644 --- a/packages/flutter/lib/src/material/dropdown.dart +++ b/packages/flutter/lib/src/material/dropdown.dart @@ -1221,7 +1221,6 @@ class _DropdownButtonState extends State> with WidgetsBindi Orientation? _lastOrientation; FocusNode? _internalNode; FocusNode? get focusNode => widget.focusNode ?? _internalNode; - bool _hasPrimaryFocus = false; late Map> _actionMap; // Only used if needed to create _internalNode. @@ -1244,14 +1243,12 @@ class _DropdownButtonState extends State> with WidgetsBindi onInvoke: (ButtonActivateIntent intent) => _handleTap(), ), }; - focusNode!.addListener(_handleFocusChanged); } @override void dispose() { WidgetsBinding.instance.removeObserver(this); _removeDropdownRoute(); - focusNode!.removeListener(_handleFocusChanged); _internalNode?.dispose(); super.dispose(); } @@ -1262,25 +1259,11 @@ class _DropdownButtonState extends State> with WidgetsBindi _lastOrientation = null; } - void _handleFocusChanged() { - if (_hasPrimaryFocus != focusNode!.hasPrimaryFocus) { - setState(() { - _hasPrimaryFocus = focusNode!.hasPrimaryFocus; - }); - } - } - - @override void didUpdateWidget(DropdownButton oldWidget) { super.didUpdateWidget(oldWidget); - if (widget.focusNode != oldWidget.focusNode) { - oldWidget.focusNode?.removeListener(_handleFocusChanged); - if (widget.focusNode == null) { - _internalNode ??= _createFocusNode(); - } - _hasPrimaryFocus = focusNode!.hasPrimaryFocus; - focusNode!.addListener(_handleFocusChanged); + if (widget.focusNode == null) { + _internalNode ??= _createFocusNode(); } _updateSelectedIndex(); }