From 6ff1ebf4babdffcdb50df029399089348fd02f36 Mon Sep 17 00:00:00 2001 From: Brandon Minnick <13558917+TheCodeTraveler@users.noreply.github.com> Date: Fri, 30 Jan 2026 09:41:13 +0000 Subject: [PATCH 1/4] Fix `SetColor` --- .../AndroidSpecific/NavigationBar.android.cs | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs b/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs index a865609f50..8f0e9555b4 100644 --- a/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs +++ b/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs @@ -1,5 +1,6 @@ using Android.App; using Android.Views; +using Android.Widget; using AndroidX.Core.View; using CommunityToolkit.Maui.Core; using CommunityToolkit.Maui.Core.Extensions; @@ -95,7 +96,36 @@ public static void MapNavigationColorProperty(IPageHandler handler, IContentView var color = GetColor(page).ToPlatform(); - if (OperatingSystem.IsAndroidVersionAtLeast(23)) + if (OperatingSystem.IsAndroidVersionAtLeast(35)) + { + const string navigationBarOverlay = "NavigationBarOverlay"; + + // Enable edge-to-edge (system bars become transparent) + WindowCompat.SetDecorFitsSystemWindows(window, false); + + var decorGroup = (ViewGroup)window.DecorView; + var statusBarOverlay = decorGroup.FindViewWithTag(navigationBarOverlay); + + if (statusBarOverlay is null) + { + var navigationBarHeight = activity.Resources?.GetIdentifier("navigation_bar_height", "dimen", "android") ?? 0; + var navigationBarPixelSize = navigationBarHeight > 0 ? activity.Resources?.GetDimensionPixelSize(navigationBarHeight) ?? 0 : 0; + + statusBarOverlay = new(activity) + { + LayoutParameters = new FrameLayout.LayoutParams(Android.Views.ViewGroup.LayoutParams.MatchParent, navigationBarPixelSize + 3) + { + Gravity = GravityFlags.Bottom + } + }; + + decorGroup.AddView(statusBarOverlay); + statusBarOverlay.SetZ(0); + } + + statusBarOverlay.SetBackgroundColor(color); + } + else if (OperatingSystem.IsAndroidVersionAtLeast(23)) { window.SetNavigationBarColor(color); } From f61bd8deb67f94dd11db0a15462e09d763b55e1e Mon Sep 17 00:00:00 2001 From: Brandon Minnick <13558917+TheCodeTraveler@users.noreply.github.com> Date: Fri, 30 Jan 2026 09:52:36 +0000 Subject: [PATCH 2/4] Update NavigationBar.android.cs --- .../AndroidSpecific/NavigationBar.android.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs b/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs index 8f0e9555b4..46b2cbe233 100644 --- a/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs +++ b/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs @@ -100,7 +100,6 @@ public static void MapNavigationColorProperty(IPageHandler handler, IContentView { const string navigationBarOverlay = "NavigationBarOverlay"; - // Enable edge-to-edge (system bars become transparent) WindowCompat.SetDecorFitsSystemWindows(window, false); var decorGroup = (ViewGroup)window.DecorView; From 00d26297e56c0baf870f5ea728841ca22acf2fb6 Mon Sep 17 00:00:00 2001 From: Brandon Minnick <13558917+TheCodeTraveler@users.noreply.github.com> Date: Fri, 30 Jan 2026 10:19:48 +0000 Subject: [PATCH 3/4] Fix naming --- .../AndroidSpecific/NavigationBar.android.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs b/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs index 46b2cbe233..0f82aaf028 100644 --- a/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs +++ b/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs @@ -98,19 +98,19 @@ public static void MapNavigationColorProperty(IPageHandler handler, IContentView if (OperatingSystem.IsAndroidVersionAtLeast(35)) { - const string navigationBarOverlay = "NavigationBarOverlay"; + const string navigationBarOverlayTag = "NavigationBarOverlay"; WindowCompat.SetDecorFitsSystemWindows(window, false); var decorGroup = (ViewGroup)window.DecorView; - var statusBarOverlay = decorGroup.FindViewWithTag(navigationBarOverlay); + var navigationBarOverlay = decorGroup.FindViewWithTag(navigationBarOverlayTag); - if (statusBarOverlay is null) + if (navigationBarOverlay is null) { var navigationBarHeight = activity.Resources?.GetIdentifier("navigation_bar_height", "dimen", "android") ?? 0; var navigationBarPixelSize = navigationBarHeight > 0 ? activity.Resources?.GetDimensionPixelSize(navigationBarHeight) ?? 0 : 0; - statusBarOverlay = new(activity) + navigationBarOverlay = new(activity) { LayoutParameters = new FrameLayout.LayoutParams(Android.Views.ViewGroup.LayoutParams.MatchParent, navigationBarPixelSize + 3) { @@ -118,11 +118,11 @@ public static void MapNavigationColorProperty(IPageHandler handler, IContentView } }; - decorGroup.AddView(statusBarOverlay); - statusBarOverlay.SetZ(0); + decorGroup.AddView(navigationBarOverlay); + navigationBarOverlay.SetZ(0); } - statusBarOverlay.SetBackgroundColor(color); + navigationBarOverlay.SetBackgroundColor(color); } else if (OperatingSystem.IsAndroidVersionAtLeast(23)) { From 595e1b1dd948ef0529d713e93e0d7d6aebba9685 Mon Sep 17 00:00:00 2001 From: Brandon Minnick <13558917+TheCodeTraveler@users.noreply.github.com> Date: Fri, 30 Jan 2026 10:29:59 +0000 Subject: [PATCH 4/4] Update src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../AndroidSpecific/NavigationBar.android.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs b/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs index 0f82aaf028..0f8f00d616 100644 --- a/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs +++ b/src/CommunityToolkit.Maui/PlatformConfiguration/AndroidSpecific/NavigationBar.android.cs @@ -118,6 +118,7 @@ public static void MapNavigationColorProperty(IPageHandler handler, IContentView } }; + navigationBarOverlay.Tag = navigationBarOverlayTag; decorGroup.AddView(navigationBarOverlay); navigationBarOverlay.SetZ(0); }