protected override void OnCreate2(Bundle?savedInstanceState) { base.OnCreate2(savedInstanceState); mainActivity = this; //InitCommunityFixVpnServiceActivityResultLauncher(); SetSupportActionBar(binding !.toolbar); var appBarConfiguration = new AppBarConfiguration.Builder( Resource.Id.navigation_local_auth, Resource.Id.navigation_asf_plus, Resource.Id.navigation_community_fix, Resource.Id.navigation_game_list, Resource.Id.navigation_my) .Build(); navController = Navigation.FindNavController(this, Resource.Id.nav_host_fragment_activity_main); R.Subscribe(() => { SetSubPageTitle(Resource.Id.navigation_local_auth, LocalAuthPageViewModel.DisplayName); SetSubPageTitle(Resource.Id.navigation_asf_plus, ArchiSteamFarmPlusPageViewModel.DisplayName); SetSubPageTitle(Resource.Id.navigation_my, MyPageViewModel.DisplayName); SetSubPageTitle(Resource.Id.navigation_community_fix, AppResources.CommunityFix); //SetSubPageTitle(Resource.Id.navigation_game_list, AppResources.GameList); }).AddTo(this); NavigationUI.SetupActionBarWithNavController(this, navController, appBarConfiguration); NavigationUI.SetupWithNavController(binding !.nav_view, navController); }
protected override void Initialize() { base.Initialize(); var sizeChangeGuardian = WindowSizeChangeGuardian.Install(this); sizeChangeGuardian.WindowSizeChanged += HandleClientSizeChanged; IsMouseVisible = true; Window.AllowUserResizing = true; var inputManager = new InputManager(this); inputManager.UpdateOrder = -10; var uiComponent = UIManagerComponent.CreateAndInit(this, inputManager, "Content"); uiComponent.DrawOrder = 10; uiComponent.UpdateOrder = -5; windowService = uiComponent.Manager.ScreenService.WindowService; NavigationUI.SetupStyles(uiComponent.Manager); var stateManager = new NamedGameStateManager(this); stateManager.UpdateOrder = 0; stateManager.DrawOrder = 0; stateManager.States["start"] = new GameStateInitialSelection(this, stateManager, uiComponent.Manager); stateManager.States["dungeon"] = new GameStateDungeonGame(this, uiComponent.Manager); stateManager.States["strategy"] = new GameStateStrategyGame(this, uiComponent.Manager); stateManager.SwitchState(stateManager.States["start"]); Components.Add(stateManager); this.CenterOnScreen(); }
public GameStateDungeonGame(Game game, IUIManager ui) : base(CreateDrawingService(game)) { this.ui = ui; gd = new DungeonGameData(); var contentLoader = new MonoGameContentLoader(game.Content); var textureOps = new MonoGameTextureOperations(game.GraphicsDevice); var tileProducer = new MonoGameTileProducer(textureOps); var renderFactory = new DefaultGameRenderCallbackFactory <Nothing>(game); var tileSet = new DungeonTileSet <MonoGameTile, XnaTexture, XnaRawTexture>(contentLoader, tileProducer); var config = new GameRenderingConfig(RenderType.IsoDiamond, new Range(0, gd.Map.Width), new Range(0, gd.Map.Height)); var grf = new DungeonGameRenderingFactory <MonoGameTile>(config, gd, tileSet); gameRendering = new GameRendering(game, grf.RenderingConfig, grf.RenderControl); gameRendering.AddLayers(grf.Create(renderFactory, Nothing.Instance, Nothing.Instance)); gameRendering.TrackScreenSize(); gameRendering.DrawOrder = -10; overlay = new DebugOverlayRenderer(game) { DrawOrder = -5 }; var navigationUI = new NavigationUI(ui, gameRendering); rootComponent = navigationUI.RootComponent; }
void SetupToolbar() { if (_stackNavigationManager == null || _navController == null) { return; } var appbarConfigBuilder = new AppBarConfiguration .Builder(_stackNavigationManager.NavGraph); if (_drawerLayout != null) { appbarConfigBuilder = appbarConfigBuilder.SetOpenableLayout(_drawerLayout); } var appbarConfig = appbarConfigBuilder.Build(); NavigationUI .SetupWithNavController(PlatformView, _navController, appbarConfig); // the call to SetupWithNavController resets the Navigation Icon UpdateValue(nameof(IToolbar.BackButtonVisible)); PlatformView.SetNavigationOnClickListener(BackNavigationClick); }
private void SetupNavigationMenu(NavController navController) { var sideNavView = FindViewById <NavigationView>(Resource.Id.nav_view); if (sideNavView != null) { NavigationUI.SetupWithNavController(sideNavView, navController); } }
private void SetupBottomNavMenu(NavController navController) { var bottomNav = FindViewById <BottomNavigationView>(Resource.Id.bottom_nav_view); if (bottomNav != null) { NavigationUI.SetupWithNavController(bottomNav, navController); } }
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); } } }
private void SetupNavigation() { var bottomNavigationView = FindViewById <BottomNavigationView>(Resource.Id.main_bottom_navigation_view); NavHostFragment navHostFragment = (NavHostFragment)SupportFragmentManager .FindFragmentById(Resource.Id.fragNavHost); NavigationUI.SetupWithNavController( bottomNavigationView, navHostFragment.NavController); }
protected override void OnCreate(Android.OS.Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.main); HostFragment = (NavHostFragment)SupportFragmentManager.FindFragmentById(Resource.Id.main_fragment); Controller = HostFragment.NavController; NavigationBar = FindViewById <BottomNavigationView>(Resource.Id.main_navigation); NavigationUI.SetupWithNavController(NavigationBar, Controller); Controller.DestinationChanged += OnDestinationChange; }
NavigationUI CreateNavigationUi(IUIManager ui) { var navigationUI = new NavigationUI(ui, gameRendering); var pname = nameof(NavigationUI.TileUnderMouseCursor); navigationUI.PropertyChanged += (_, args) => { if (args.PropertyName == pname) { gd.MousePosition = navigationUI.TileUnderMouseCursor; } }; return(navigationUI); }
public override void OnFragmentViewCreated(AndroidX.Fragment.App.FragmentManager fm, AndroidX.Fragment.App.Fragment f, AView v, Bundle savedInstanceState) { base.OnFragmentViewCreated(fm, f, v, savedInstanceState); var controller = NavHostFragment.FindNavController(f); var appbarConfig = new AppBarConfiguration .Builder(controller.Graph) .Build(); // These have to get called/wired up every time a new fragment view is created // I'm not clear why this can't just be done once NavigationUI .SetupWithNavController(_navigationManager.Toolbar, controller, appbarConfig); _navigationManager.Toolbar.SetNavigationOnClickListener(_navigationManager.BackClick); }
public override void OnViewCreated(AView view, Bundle savedInstanceState) { base.OnViewCreated(view, savedInstanceState); var controller = NavHostFragment.FindNavController(this); var appbarConfig = new AppBarConfiguration .Builder(controller.Graph) .Build(); NavigationUI .SetupWithNavController(NavDestination.NavigationPageHandler.Toolbar, controller, appbarConfig); HasOptionsMenu = true; NavDestination.NavigationPageHandler.Toolbar.SetNavigationOnClickListener(BackClick); UpdateToolbar(); NavDestination.NavigationPageHandler.Toolbar .Title = NavDestination.Page.Title; if (Context.GetActivity() is AppCompatActivity aca) { aca.SupportActionBar.Title = NavDestination.Page.Title; // TODO MAUI put this elsewhere once we figure out how attached property handlers work bool showNavBar = false; if (NavDestination.Page is BindableObject bo) { showNavBar = NavigationPage.GetHasNavigationBar(bo); } var appBar = NavDestination.NavigationPageHandler.AppBar; if (!showNavBar) { if (appBar.LayoutParameters is CoordinatorLayout.LayoutParams cl) { cl.Height = 0; appBar.LayoutParameters = cl; } } else { if (appBar.LayoutParameters is CoordinatorLayout.LayoutParams cl) { cl.Height = ActionBarHeight(); appBar.LayoutParameters = cl; } } } int ActionBarHeight() { int attr = Resource.Attribute.actionBarSize; int actionBarHeight = (int)Context.GetThemeAttributePixels(Resource.Attribute.actionBarSize); //if (actionBarHeight <= 0) // return Device.Info.CurrentOrientation.IsPortrait() ? (int)Context.ToPixels(56) : (int)Context.ToPixels(48); //if (Context.GetActivity().Window.Attributes.Flags.HasFlag(WindowManagerFlags.TranslucentStatus) || Context.GetActivity().Window.Attributes.Flags.HasFlag(WindowManagerFlags.TranslucentNavigation)) //{ // if (_toolbar.PaddingTop == 0) // _toolbar.SetPadding(0, GetStatusBarHeight(), 0, 0); // return actionBarHeight + GetStatusBarHeight(); //} return(actionBarHeight); } }
private void SetupActionBar(NavController navController, AppBarConfiguration appBarConfiguration) { NavigationUI.SetupActionBarWithNavController(this, navController, appBarConfiguration); }