public override void OnFragmentResumed(AndroidX.Fragment.App.FragmentManager fm, AndroidX.Fragment.App.Fragment f) { if (f is NavigationViewFragment pf) { _stackNavigationManager.OnNavigationViewFragmentResumed(fm, pf); } AToolbar?nativeToolbar = null; IToolbar?toolbar = null; if (_stackNavigationManager.NavigationView?.Toolbar is IToolbar tb && tb?.Handler?.NativeView is AToolbar ntb) { nativeToolbar = ntb; toolbar = tb; } // Wire up the toolbar to the currently made visible Fragment var controller = NavHostFragment.FindNavController(f); var appbarConfigBuilder = new AppBarConfiguration .Builder(_stackNavigationManager.NavGraph); if (nativeToolbar != null && toolbar != null && toolbar.Handler?.MauiContext != null) { if (toolbar.Handler is ToolbarHandler th) { th.SetupWithNavController(controller, _stackNavigationManager); } } }
public override void OnFragmentResumed(AndroidX.Fragment.App.FragmentManager fm, AndroidX.Fragment.App.Fragment f) { if (f is NavigationViewFragment pf) { _stackNavigationManager.OnNavigationViewFragmentResumed(fm, pf); } AToolbar?nativeToolbar = null; IToolbar?toolbar = null; if (_stackNavigationManager.NavigationView?.Toolbar is IToolbar tb && tb?.Handler?.NativeView is AToolbar ntb) { nativeToolbar = ntb; toolbar = tb; } // Wire up the toolbar to the currently made visible Fragment var controller = NavHostFragment.FindNavController(f); var appbarConfigBuilder = new AppBarConfiguration .Builder(_stackNavigationManager.NavGraph); if (nativeToolbar != null && toolbar != null) { // TODO: MAUI Hackey way of wiring up Drawer Layout // But currently you can only have a nav bar with a Navigation View if (nativeToolbar.Parent is DrawerLayout dl1) { appbarConfigBuilder = appbarConfigBuilder.SetOpenableLayout(dl1); } else if (nativeToolbar.Parent?.Parent is DrawerLayout dl2) { appbarConfigBuilder = appbarConfigBuilder.SetOpenableLayout(dl2); } else if (nativeToolbar.Parent?.Parent?.Parent is DrawerLayout dl3) { appbarConfigBuilder = appbarConfigBuilder.SetOpenableLayout(dl3); } var appbarConfig = appbarConfigBuilder.Build(); NavigationUI .SetupWithNavController(nativeToolbar, controller, appbarConfig); // the call to SetupWithNavController resets the Navigation Icon toolbar.Handler?.UpdateValue(nameof(IToolbar.BackButtonVisible)); if (toolbar.BackButtonVisible && toolbar.IsVisible) { // Wiring up to this will break the Drawer Toggle button if it's visible nativeToolbar.SetNavigationOnClickListener(_stackNavigationManager.BackClick); } } }