From bb5351b7c27f9652777fc74ee53bd08a032cfb50 Mon Sep 17 00:00:00 2001 From: Hans Muller Date: Mon, 3 Apr 2017 15:27:37 -0700 Subject: [PATCH] AppBar looks up its scaffold with nullOk: true (#9160) --- .../flutter/lib/src/material/app_bar.dart | 2 +- .../flutter/test/material/app_bar_test.dart | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart index 8dda10ff42..7877140d6d 100644 --- a/packages/flutter/lib/src/material/app_bar.dart +++ b/packages/flutter/lib/src/material/app_bar.dart @@ -336,7 +336,7 @@ class _AppBarState extends State { @override void didChangeDependencies() { super.didChangeDependencies(); - final ScaffoldState scaffold = Scaffold.of(context); + final ScaffoldState scaffold = Scaffold.of(context, nullOk: true); _hasDrawer = scaffold?.hasDrawer ?? false; _canPop = ModalRoute.of(context)?.canPop ?? false; } diff --git a/packages/flutter/test/material/app_bar_test.dart b/packages/flutter/test/material/app_bar_test.dart index e05024f78c..5456e10443 100644 --- a/packages/flutter/test/material/app_bar_test.dart +++ b/packages/flutter/test/material/app_bar_test.dart @@ -246,6 +246,25 @@ void main() { expect(tester.getSize(title).width, equals(620.0)); }); + testWidgets('AppBar with no Scaffold', (WidgetTester tester) async { + await tester.pumpWidget( + new SizedBox( + height: kToolbarHeight, + child: new AppBar( + leading: new Text('L'), + title: new Text('No Scaffold'), + actions: [new Text('A1'), new Text('A2')], + ), + ), + ); + + expect(find.text('L'), findsOneWidget); + expect(find.text('No Scaffold'), findsOneWidget); + expect(find.text('A1'), findsOneWidget); + expect(find.text('A2'), findsOneWidget); + }); + + testWidgets('AppBar render at zero size', (WidgetTester tester) async { await tester.pumpWidget( new Center(