Revert: Fix DropdownMenu rendered behind AppBar (#159907)
Reverts https://github.com/flutter/flutter/pull/155539.
The PR was found to have caused regression
https://github.com/flutter/flutter/issues/159906.
diff --git a/packages/flutter/lib/src/material/menu_anchor.dart b/packages/flutter/lib/src/material/menu_anchor.dart
index 4248ae2..568b812 100644
--- a/packages/flutter/lib/src/material/menu_anchor.dart
+++ b/packages/flutter/lib/src/material/menu_anchor.dart
@@ -406,7 +406,7 @@
);
}
- Widget child = OverlayPortal.targetsRootOverlay(
+ Widget child = OverlayPortal(
controller: _overlayController,
overlayChildBuilder: (BuildContext context) {
return _Submenu(
diff --git a/packages/flutter/test/material/menu_anchor_test.dart b/packages/flutter/test/material/menu_anchor_test.dart
index 4216f2a..83e312a 100644
--- a/packages/flutter/test/material/menu_anchor_test.dart
+++ b/packages/flutter/test/material/menu_anchor_test.dart
@@ -4688,83 +4688,6 @@
expect(iconStyle(tester, Icons.add).color, disabledIconColor);
});
- // Regression test for https://github.com/flutter/flutter/issues/155034.
- testWidgets('Content is shown in the root overlay', (WidgetTester tester) async {
- final MenuController controller = MenuController();
- final UniqueKey overlayKey = UniqueKey();
- final UniqueKey menuItemKey = UniqueKey();
-
- List<RenderObject> ancestorRenderTheaters(RenderObject child) {
- final List<RenderObject> results = <RenderObject>[];
- RenderObject? node = child;
- while (node != null) {
- if (node.runtimeType.toString() == '_RenderTheater') {
- results.add(node);
- }
- final RenderObject? parent = node.parent;
- node = parent is RenderObject? parent : null;
- }
- return results;
- }
-
- late final OverlayEntry overlayEntry;
- addTearDown((){
- overlayEntry.remove();
- overlayEntry.dispose();
- });
-
- Widget boilerplate() {
- return MaterialApp(
- home: Overlay(
- key: overlayKey,
- initialEntries: <OverlayEntry>[
- overlayEntry = OverlayEntry(
- builder: (BuildContext context) {
- return Scaffold(
- body: Center(
- child: MenuAnchor(
- controller: controller,
- menuChildren: <Widget>[
- MenuItemButton(
- key: menuItemKey,
- onPressed: () {},
- child: const Text('Item 1'),
- ),
- ],
- ),
- ),
- );
- }
- ),
- ],
- ),
- );
- }
-
- await tester.pumpWidget(boilerplate());
- expect(find.byKey(menuItemKey), findsNothing);
-
- // Open the menu.
- controller.open();
- await tester.pump();
- expect(find.byKey(menuItemKey), findsOne);
-
- // Expect two overlays: the root overlay created by MaterialApp and the
- // overlay created by the boilerplate code.
- expect(find.byType(Overlay), findsNWidgets(2));
-
- final Iterable<Overlay> overlays = tester.widgetList<Overlay>(find.byType(Overlay));
- final Overlay nonRootOverlay = tester.widget(find.byKey(overlayKey));
- final Overlay rootOverlay = overlays.firstWhere((Overlay overlay) => overlay != nonRootOverlay);
-
- // Check that the ancestor _RenderTheater for the menu item is the one
- // from the root overlay.
- expect(
- ancestorRenderTheaters(tester.renderObject(find.byKey(menuItemKey))).single,
- tester.renderObject(find.byWidget(rootOverlay)),
- );
- });
-
// Regression test for https://github.com/flutter/flutter/issues/156572.
testWidgets('Unattached MenuController does not throw when calling close', (WidgetTester tester) async {
final MenuController controller = MenuController();