Revert "fix a Scaffold extendBodyBehindAppBar update bug" (#106396)
diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart index 5d02f47..a18184b 100644 --- a/packages/flutter/lib/src/material/scaffold.dart +++ b/packages/flutter/lib/src/material/scaffold.dart
@@ -875,6 +875,10 @@ @override Widget build(BuildContext context) { + if (!extendBody && !extendBodyBehindAppBar) { + return body; + } + return LayoutBuilder( builder: (BuildContext context, BoxConstraints constraints) { final _BodyBoxConstraints bodyConstraints = constraints as _BodyBoxConstraints;
diff --git a/packages/flutter/test/material/scaffold_test.dart b/packages/flutter/test/material/scaffold_test.dart index 888fa22..219fdf0 100644 --- a/packages/flutter/test/material/scaffold_test.dart +++ b/packages/flutter/test/material/scaffold_test.dart
@@ -11,39 +11,6 @@ import '../widgets/semantics_tester.dart'; void main() { - // Regression test for https://github.com/flutter/flutter/issues/103741 - testWidgets('extendBodyBehindAppBar change should not cause the body widget lose state', (WidgetTester tester) async { - final ScrollController controller = ScrollController(); - Widget buildFrame({required bool extendBodyBehindAppBar}) { - return MediaQuery( - data: const MediaQueryData(), - child: Directionality( - textDirection: TextDirection.ltr, - child: Scaffold( - extendBodyBehindAppBar: extendBodyBehindAppBar, - resizeToAvoidBottomInset: false, - body: SingleChildScrollView( - controller: controller, - child: const FlutterLogo( - size: 1107, - ), - ), - ), - ), - ); - } - - await tester.pumpWidget(buildFrame(extendBodyBehindAppBar: true)); - expect(controller.position.pixels, 0.0); - - controller.jumpTo(100.0); - await tester.pump(); - expect(controller.position.pixels, 100.0); - - await tester.pumpWidget(buildFrame(extendBodyBehindAppBar: false)); - expect(controller.position.pixels, 100.0); - }); - testWidgets('Scaffold drawer callback test', (WidgetTester tester) async { bool isDrawerOpen = false; bool isEndDrawerOpen = false; @@ -2434,8 +2401,6 @@ ' ancestor was:\n' ' Builder\n' ' The ancestors of this widget were:\n' - ' MediaQuery\n' - ' LayoutBuilder\n' ' _BodyBuilder\n' ' MediaQuery\n' ' LayoutId-[<_ScaffoldSlot.body>]\n'
diff --git a/packages/flutter/test/widgets/interactive_viewer_test.dart b/packages/flutter/test/widgets/interactive_viewer_test.dart index a005d91..6834c56 100644 --- a/packages/flutter/test/widgets/interactive_viewer_test.dart +++ b/packages/flutter/test/widgets/interactive_viewer_test.dart
@@ -1269,9 +1269,11 @@ testWidgets('LayoutBuilder is only used for InteractiveViewer.builder', (WidgetTester tester) async { await tester.pumpWidget( MaterialApp( - home: Center( - child: InteractiveViewer( - child: const SizedBox(width: 200.0, height: 200.0), + home: Scaffold( + body: Center( + child: InteractiveViewer( + child: const SizedBox(width: 200.0, height: 200.0), + ), ), ), ), @@ -1281,11 +1283,13 @@ await tester.pumpWidget( MaterialApp( - home: Center( - child: InteractiveViewer.builder( - builder: (BuildContext context, Quad viewport) { - return const SizedBox(width: 200.0, height: 200.0); - }, + home: Scaffold( + body: Center( + child: InteractiveViewer.builder( + builder: (BuildContext context, Quad viewport) { + return const SizedBox(width: 200.0, height: 200.0); + }, + ), ), ), ),
diff --git a/packages/flutter/test/widgets/nested_scroll_view_test.dart b/packages/flutter/test/widgets/nested_scroll_view_test.dart index 7f54f76..af4af7a 100644 --- a/packages/flutter/test/widgets/nested_scroll_view_test.dart +++ b/packages/flutter/test/widgets/nested_scroll_view_test.dart
@@ -2360,35 +2360,37 @@ testWidgets('NestedScrollView works well when rebuilding during scheduleWarmUpFrame', (WidgetTester tester) async { bool? isScrolled; final Widget myApp = MaterialApp( - home: StatefulBuilder( - builder: (BuildContext context, StateSetter setState) { - return Focus( - onFocusChange: (_) => setState( (){} ), - child: NestedScrollView( - headerSliverBuilder: (BuildContext context, bool boxIsScrolled) { - isScrolled = boxIsScrolled; - return <Widget>[ - const SliverAppBar( - expandedHeight: 200, - title: Text('Test'), - ), - ]; - }, - body: CustomScrollView( - slivers: <Widget>[ - SliverList( - delegate: SliverChildBuilderDelegate( - (BuildContext context, int index) { - return const Text(''); - }, - childCount: 10, + home: Scaffold( + body: StatefulBuilder( + builder: (BuildContext context, StateSetter setState) { + return Focus( + onFocusChange: (_) => setState( (){} ), + child: NestedScrollView( + headerSliverBuilder: (BuildContext context, bool boxIsScrolled) { + isScrolled = boxIsScrolled; + return <Widget>[ + const SliverAppBar( + expandedHeight: 200, + title: Text('Test'), ), - ), - ], + ]; + }, + body: CustomScrollView( + slivers: <Widget>[ + SliverList( + delegate: SliverChildBuilderDelegate( + (BuildContext context, int index) { + return const Text(''); + }, + childCount: 10, + ), + ), + ], + ), ), - ), - ); - }, + ); + }, + ), ), );