AppBar looks up its scaffold with nullOk: true (#9160)

This commit is contained in:
Hans Muller 2017-04-03 15:27:37 -07:00 committed by GitHub
parent 58ddde88f4
commit bb5351b7c2
2 changed files with 20 additions and 1 deletions

View File

@ -336,7 +336,7 @@ class _AppBarState extends State<AppBar> {
@override @override
void didChangeDependencies() { void didChangeDependencies() {
super.didChangeDependencies(); super.didChangeDependencies();
final ScaffoldState scaffold = Scaffold.of(context); final ScaffoldState scaffold = Scaffold.of(context, nullOk: true);
_hasDrawer = scaffold?.hasDrawer ?? false; _hasDrawer = scaffold?.hasDrawer ?? false;
_canPop = ModalRoute.of(context)?.canPop ?? false; _canPop = ModalRoute.of(context)?.canPop ?? false;
} }

View File

@ -246,6 +246,25 @@ void main() {
expect(tester.getSize(title).width, equals(620.0)); 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: <Widget>[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 { testWidgets('AppBar render at zero size', (WidgetTester tester) async {
await tester.pumpWidget( await tester.pumpWidget(
new Center( new Center(