diff --git a/packages/flutter/lib/src/material/menu_anchor.dart b/packages/flutter/lib/src/material/menu_anchor.dart index 3ce62dbe287..2f8cee2d507 100644 --- a/packages/flutter/lib/src/material/menu_anchor.dart +++ b/packages/flutter/lib/src/material/menu_anchor.dart @@ -650,8 +650,7 @@ class MenuController { /// Whether or not the associated menu is currently open. bool get isOpen { - assert(_anchor != null); - return _anchor!._isOpen; + return _anchor?._isOpen ?? false; } /// Close the menu that this menu controller is associated with. diff --git a/packages/flutter/test/material/menu_anchor_test.dart b/packages/flutter/test/material/menu_anchor_test.dart index 96f66c2933e..e5ad19fa47a 100644 --- a/packages/flutter/test/material/menu_anchor_test.dart +++ b/packages/flutter/test/material/menu_anchor_test.dart @@ -4732,6 +4732,11 @@ void main() { await tester.pump(); expect(tester.takeException(), isNull); }); + + testWidgets('Unattached MenuController returns false when calling isOpen', (WidgetTester tester) async { + final MenuController controller = MenuController(); + expect(controller.isOpen, false); + }); } List createTestMenus({