From 477a4241ea38a19f1d6f4d407f4e5b92f01d0ef3 Mon Sep 17 00:00:00 2001 From: Kate Lovett Date: Fri, 13 Nov 2020 14:18:03 -0600 Subject: [PATCH] Revert "Actually consume top padding in bottomsheet if scrollcontrolled (#66257)" (#70392) --- .../lib/src/material/bottom_sheet.dart | 10 +--- .../test/material/bottom_sheet_test.dart | 56 +------------------ 2 files changed, 3 insertions(+), 63 deletions(-) diff --git a/packages/flutter/lib/src/material/bottom_sheet.dart b/packages/flutter/lib/src/material/bottom_sheet.dart index 9d78dc6113..36fa37f197 100644 --- a/packages/flutter/lib/src/material/bottom_sheet.dart +++ b/packages/flutter/lib/src/material/bottom_sheet.dart @@ -472,7 +472,7 @@ class _ModalBottomSheetRoute extends PopupRoute { Widget buildPage(BuildContext context, Animation animation, Animation secondaryAnimation) { // By definition, the bottom sheet is aligned to the bottom of the page // and isn't exposed to the top padding of the MediaQuery. - Widget bottomSheet = MediaQuery.removePadding( + final Widget bottomSheet = MediaQuery.removePadding( context: context, removeTop: true, child: Builder( @@ -490,11 +490,6 @@ class _ModalBottomSheetRoute extends PopupRoute { }, ), ); - if (isScrollControlled) - bottomSheet = Padding( - padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top), - child: bottomSheet - ); return capturedThemes.wrap(bottomSheet); } } @@ -577,8 +572,7 @@ class _BottomSheetSuspendedCurve extends ParametricCurve { /// a bottom sheet that will utilize [DraggableScrollableSheet]. If you wish /// to have a bottom sheet that has a scrollable child such as a [ListView] or /// a [GridView] and have the bottom sheet be draggable, you should set this -/// parameter to true. When this parameter is set to true the top of [BottomSheet] will be padded -/// such that it avoids any system top padding given by the [MediaQuery] +/// parameter to true. /// /// The `useRootNavigator` parameter ensures that the root navigator is used to /// display the [BottomSheet] when set to `true`. This is useful in the case diff --git a/packages/flutter/test/material/bottom_sheet_test.dart b/packages/flutter/test/material/bottom_sheet_test.dart index 40901108e7..e6cff5c1ee 100644 --- a/packages/flutter/test/material/bottom_sheet_test.dart +++ b/packages/flutter/test/material/bottom_sheet_test.dart @@ -425,7 +425,7 @@ void main() { expect(find.text('BottomSheet'), findsNothing); }); - testWidgets('modal BottomSheet has no top MediaQuery when not scroll controlled', (WidgetTester tester) async { + testWidgets('modal BottomSheet has no top MediaQuery', (WidgetTester tester) async { late BuildContext outerContext; late BuildContext innerContext; @@ -476,60 +476,6 @@ void main() { ); }); - testWidgets('modal BottomSheet consumes top MediaQuery when scroll controlled', (WidgetTester tester) async { - late BuildContext outerContext; - late BuildContext innerContext; - final Key containerKey = UniqueKey(); - - await tester.pumpWidget(Localizations( - locale: const Locale('en', 'US'), - delegates: const >[ - DefaultWidgetsLocalizations.delegate, - DefaultMaterialLocalizations.delegate, - ], - child: Directionality( - textDirection: TextDirection.ltr, - child: MediaQuery( - data: const MediaQueryData( - padding: EdgeInsets.all(50.0), - size: Size(400.0, 600.0), - ), - child: Navigator( - onGenerateRoute: (_) { - return PageRouteBuilder( - pageBuilder: (BuildContext context, Animation animation, Animation secondaryAnimation) { - outerContext = context; - return Container(); - }, - ); - }, - ), - ), - ), - )); - - showModalBottomSheet( - context: outerContext, - isScrollControlled: true, - builder: (BuildContext context) { - innerContext = context; - return Container(key: containerKey); - }, - ); - await tester.pump(); - await tester.pump(const Duration(seconds: 1)); - - expect( - MediaQuery.of(outerContext).padding, - const EdgeInsets.all(50.0), - ); - expect( - MediaQuery.of(innerContext).padding, - const EdgeInsets.only(left: 50.0, right: 50.0, bottom: 50.0), - ); - expect(tester.getTopLeft(find.byKey(containerKey)), const Offset(0.0, 50.0)); - }); - testWidgets('modal BottomSheet has semantics', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final GlobalKey scaffoldKey = GlobalKey();