From dfd0c6270fda340d790d11def04c2c5b8ca90d06 Mon Sep 17 00:00:00 2001 From: GodHyum <38372691+gusghrlrl101@users.noreply.github.com> Date: Tue, 15 Sep 2020 16:57:03 +0900 Subject: [PATCH] Remove back button when using end drawer (#63272) --- packages/flutter/lib/src/material/app_bar.dart | 2 +- .../flutter/test/material/app_bar_test.dart | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart index b198a805a49..c5e1e798b20 100644 --- a/packages/flutter/lib/src/material/app_bar.dart +++ b/packages/flutter/lib/src/material/app_bar.dart @@ -555,7 +555,7 @@ class _AppBarState extends State { tooltip: MaterialLocalizations.of(context).openAppDrawerTooltip, ); } else { - if (canPop) + if (!hasEndDrawer && canPop) leading = useCloseButton ? const CloseButton() : const BackButton(); } } diff --git a/packages/flutter/test/material/app_bar_test.dart b/packages/flutter/test/material/app_bar_test.dart index 7cb6241fee5..b79dab31fe2 100644 --- a/packages/flutter/test/material/app_bar_test.dart +++ b/packages/flutter/test/material/app_bar_test.dart @@ -2194,4 +2194,21 @@ void main() { // By default toolbarHeight is 56.0. expect(tester.getRect(find.byKey(key)), const Rect.fromLTRB(0, 0, 100, 56)); }); + + testWidgets("AppBar with EndDrawer doesn't have leading", (WidgetTester tester) async { + await tester.pumpWidget(MaterialApp( + home: Scaffold( + appBar: AppBar(), + endDrawer: const Drawer(), + ), + )); + + final Finder endDrawerFinder = find.byTooltip('Open navigation menu'); + await tester.tap(endDrawerFinder); + await tester.pump(); + + final Finder appBarFinder = find.byType(NavigationToolbar); + NavigationToolbar getAppBarWidget(Finder finder) => tester.widget(finder); + expect(getAppBarWidget(appBarFinder).leading, null); + }); }