From 00befba1bc8aeddad787cd73fbc7c903beb9aa7f Mon Sep 17 00:00:00 2001 From: Guy Colsoul Date: Tue, 27 Aug 2024 15:17:29 +0200 Subject: [PATCH] Update NavigationPageToolbar.cs The condition to show the flyout button (burger) or not is set in method ShouldShowToolbarButton of the FlyoutPage. In Android, this method is not hit when orientation changes. This method is only called once during initialization. This modification triggers the update of this button when orientation changes. https://github.com/dotnet/maui/issues/24468 --- .../src/Core/NavigationPage/NavigationPageToolbar.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Controls/src/Core/NavigationPage/NavigationPageToolbar.cs b/src/Controls/src/Core/NavigationPage/NavigationPageToolbar.cs index 9e58809acca2..b2ac0657a78c 100644 --- a/src/Controls/src/Core/NavigationPage/NavigationPageToolbar.cs +++ b/src/Controls/src/Core/NavigationPage/NavigationPageToolbar.cs @@ -42,8 +42,20 @@ void OnToolbarItemsChanged(object sender, EventArgs e) ToolbarItems = _toolbarTracker.ToolbarItems; } +#if ANDROID + Devices.DisplayOrientation lastOrientation = Devices.DisplayOrientation.Unknown; +#endif + void OnPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { +#if ANDROID + if ((e.PropertyName == "Height") && (Parent is FlyoutPage) && (lastOrientation != Devices.DeviceDisplay.MainDisplayInfo.Orientation)) + { + if (lastOrientation != Devices.DisplayOrientation.Unknown) + UpdateBackButton(); + lastOrientation = Devices.DeviceDisplay.MainDisplayInfo.Orientation; + } +#endif if (e.IsOneOf(NavigationPage.HasNavigationBarProperty, NavigationPage.HasBackButtonProperty, NavigationPage.TitleIconImageSourceProperty,