/// <summary> /// Pop to a specific fragment name /// </summary> /// <param name="name">Name.</param> public void NavigateBackToFragment(string name) { // get out fragment we want to navigate to var fragment = SupportFragmentManager.FindFragmentByTag(name); // pop everything up to our fragment RunOnUiThread(() => { _drawerLayout.CloseDrawers(); HideSoftInput(); try { SupportFragmentManager.PopBackStackImmediate(name, (int)PopBackStackFlags.None); } catch (Java.Lang.RuntimeException exception) { var dict = new Dictionary <string, string> { { "Fragment Name", name } }; Crashes.TrackError(exception, dict); } }); }
public override void ShowRootFragment(Type fragment) { GC.Collect(); SupportFragmentManager.PopBackStackImmediate(null, Android.Support.V4.App.FragmentManager.PopBackStackInclusive); Show(fragment); }
/// <summary> /// Pops to root. /// </summary> public void PopToRoot() { var count = SupportFragmentManager.BackStackEntryCount; // if we are already at start return if (count == 0) { return; } RunOnUiThread(() => { _drawerLayout.CloseDrawers(); HideSoftInput(); try { SupportFragmentManager.PopBackStackImmediate(0, (int)PopBackStackFlags.Inclusive); } catch (Java.Lang.RuntimeException exception) { Crashes.TrackError(exception); } }); }
public override bool OnOptionsItemSelected(IMenuItem item) { if (toggle.DrawerIndicatorEnabled && toggle.OnOptionsItemSelected((Android.Views.IMenuItem)item)) { return(true); } if (item.ItemId == Android.Resource.Id.Home) { SupportFragmentManager.PopBackStackImmediate(); return(true); } switch (item.ItemId) { case (SWAP_MENU): App.STATE.SwapLanguage(); return(true); case (PINYIN_MENU): App.STATE.PinyinToggleParadigm(); return(true); case (SYNC_MENU): App.FUNCTIONS.UserSyncDialog(this); return(true); case (SETTINGS_MENU): StartActivity(typeof(SettingsActivity)); return(true); } return(base.OnOptionsItemSelected(item)); }
/// <summary> /// Close Fragment with a specific tag at a specific placeholder /// </summary> /// <param name="tag">The tag for the fragment to lookup</param> /// <param name="contentId">Where you want to close the Fragment</param> protected virtual void CloseFragment(string tag, int contentId) { var frag = SupportFragmentManager.FindFragmentById(contentId); if (frag == null) return; SupportFragmentManager.PopBackStackImmediate(tag, 1); }
public bool OnNavigationItemSelected(IMenuItem item) { while (SupportFragmentManager.BackStackEntryCount != 0) { SupportFragmentManager.PopBackStackImmediate(); } switch (item.ItemId) { case Resource.Id.navigation_home: currentF = new MainFlowFragment(); loadFragment(currentF); return(true); case Resource.Id.navigation_plus: currentF = new NewPostFragment(); loadFragment(currentF); return(true); case Resource.Id.navigation_profile: currentF = new ProfileFragment(); loadFragment(currentF); return(true); } return(false); }
public override void GoBackTo(Type fragment) { var name = fragment.Name; SupportFragmentManager.PopBackStackImmediate(name, Android.Support.V4.App.FragmentManager.PopBackStackInclusive); Show(fragment); }
public override bool OnOptionsItemSelected(IMenuItem item) { if (item.ItemId != Resource.Id.home) { SupportFragmentManager.PopBackStackImmediate(); UpdateBackButtonVisibility(); } return(base.OnOptionsItemSelected(item)); }
/// <summary> /// End the nicotine editing fragment and update the UI. /// </summary> public void StopEditNicotine() { SupportFragmentManager.PopBackStackImmediate(); var list = SupportFragmentManager.FindFragmentByTag("listFragment") as NicotineListFragment; if (list != null) { list.Reset(); } }
public void StopEditFlavor() { SupportFragmentManager.PopBackStackImmediate(); var fragment = SupportFragmentManager.FindFragmentByTag("listFragment") as FlavorListFragment; if (fragment != null) { fragment.Reset(); } }
public void onBackPressed() { if (SupportFragmentManager.BackStackEntryCount > 0) { SupportFragmentManager.PopBackStackImmediate(); } else { base.OnBackPressed(); } }
private bool HandleHomeButton() { if (currentFragmentInfo != null && currentFragmentInfo.IsRoot) { DrawerLayout.OpenDrawer(GravityCompat.Start); } else { SupportFragmentManager.PopBackStackImmediate(); } return(true); }
public override bool OnOptionsItemSelected(IMenuItem item) { if (ActionBarDrawerToggle.OnOptionsItemSelected(item)) { return(true); } SupportFragmentManager.PopBackStackImmediate(); SetDrawerState(true); return(false); }
public override void OnBackPressed() { if (SupportFragmentManager.BackStackEntryCount == 1) // landing fragment { Finish(); return; } SupportFragmentManager.PopBackStackImmediate(); if (SupportFragmentManager.BackStackEntryCount == 1) // landing fragment { SupportActionBar.Hide(); } }
public override void OnBackPressed() { if (SupportFragmentManager.BackStackEntryCount > 0) { SupportFragmentManager.PopBackStackImmediate(); } else { base.OnBackPressed(); } UpdateToolbar(); }
void AttachFragment(Android.Support.V4.App.Fragment f) { if (f != null) { while (SupportFragmentManager.BackStackEntryCount > 0) { SupportFragmentManager.PopBackStackImmediate(); } SupportFragmentManager.BeginTransaction() .Replace(Resource.Id.mainContent, f) .Commit(); } }
public override void OnBackPressed() { if (SupportFragmentManager.BackStackEntryCount > 0) { SupportFragmentManager.PopBackStackImmediate(); } else { var drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout); drawer.OpenDrawer((int)GravityFlags.Start); } UpdateToolbar(); }
public override void OnBackPressed() { if (SupportFragmentManager.BackStackEntryCount == 1) { Finish(); } else { if (SupportFragmentManager.BackStackEntryCount > 1) { SupportFragmentManager.PopBackStackImmediate(); } } }
private void ShowLogoutPrompt() { new AlertDialog.Builder(this) .SetPositiveButton("Yes", (sender, args) => { App.Logout(); SupportFragmentManager.PopBackStackImmediate(); Finish(); }) .SetNegativeButton("No", (sender, args) => { }) .SetMessage("Do you want to logout?") .SetTitle("Logout") . Show(); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Init SetContentView(Resource.Layout.FragmentContainerActivityLayout); FragmentContainerId = Resource.Id.fragmentContainer; // Pop off all fragments while (SupportFragmentManager?.BackStackEntryCount > 0) { SupportFragmentManager?.PopBackStackImmediate(); } }
public void PopFragmentOverUntil(Type targetType) { var existingFragment = GetOverFragment(); if (existingFragment == null) { return; } if (existingFragment.GetType() == targetType) { return; } SupportFragmentManager.PopBackStackImmediate(); PopFragmentOverUntil(targetType); }
public override void OnBackPressed() { if (currentFragement != null && currentFragement.OnBackPressed()) { //Has been handled by fragment return; } if (SupportFragmentManager.BackStackEntryCount == 1) { ShowLogoutPrompt(); } else { SupportFragmentManager.PopBackStackImmediate(); } }
public override void OnBackPressed() { if (SupportFragmentManager.BackStackEntryCount >= 1) { SupportFragmentManager.PopBackStackImmediate(); if (FragmentCacheConfiguration.EnableOnFragmentPoppedCallback) { //NOTE(vvolkgang) this is returning ALL the frags. Should we return only the visible ones? var currentFragsInfo = GetCurrentCacheableFragmentsInfo(); OnFragmentPopped(currentFragsInfo); } return; } base.OnBackPressed(); }
public override void OnBackPressed() { DrawerLayout drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout); if (drawer.IsDrawerOpen(GravityCompat.Start)) { drawer.CloseDrawer(GravityCompat.Start); } else { if (SupportFragmentManager.BackStackEntryCount == 1) { SupportFragmentManager.PopBackStackImmediate(); } base.OnBackPressed(); SetSelectedMenuItem(); } }
public override bool OnOptionsItemSelected(IMenuItem item) { AndroidX.Fragment.App.Fragment existingFragment; existingFragment = SupportFragmentManager.FindFragmentByTag("CHK"); if (existingFragment != null) { SupportFragmentManager.PopBackStackImmediate(existingFragment.Id, 0); } existingFragment = SupportFragmentManager.FindFragmentByTag("STS"); if (existingFragment != null) { SupportFragmentManager.PopBackStackImmediate(existingFragment.Id, 0); } existingFragment = SupportFragmentManager.FindFragmentByTag("ABT"); if (existingFragment != null) { SupportFragmentManager.PopBackStackImmediate(existingFragment.Id, 0); } AndroidX.Fragment.App.Fragment fragment; if (item.ItemId == Resource.Id.menu_about) { _fragmentTag = "ABT"; fragment = AboutFragment.NewInstance(); SupportActionBar.SetTitle(Resource.String.aboutTitle); _navigation.Visibility = ViewStates.Gone; _menu.FindItem(Resource.Id.menu_share).SetVisible(false); SupportFragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, fragment, _fragmentTag).Commit(); } if (item.ItemId == Resource.Id.menu_settings) { _fragmentTag = "SET"; fragment = SettingsFragment.NewInstance(_settingsService, Container.Resolve <IWorkerService>()); SupportActionBar.SetTitle(Resource.String.settingsTitle); _navigation.Visibility = ViewStates.Gone; _menu.FindItem(Resource.Id.menu_share).SetVisible(false); SupportFragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, fragment, _fragmentTag).Commit(); } _eventService.OnMenuItemPressedEvent(new MenuItemPressedEventArgs(item.TitleFormatted.ToString(), _fragmentTag)); //_eventService.OnSpareEvent(new EventArgs()); return(base.OnOptionsItemSelected(item)); }
/// <summary> /// React to the 'select new flavor' action ending. /// </summary> /// <param name="newFlavor">The flavor that was selected. May be null.</param> public void FlavorSelected(Flavor newFlavor) { if (newFlavor != null) { RecipeItem newItem = new RecipeItem(); newItem.Flavor = newFlavor; newItem.Percentage = newFlavor.RecommendedPercentage; //DatabaseHelper helper = new DatabaseHelper(ApplicationContext); //helper.PutRecipeItem(newItem, ActiveRecipe); ActiveRecipe.Flavors.Add(newItem); } SupportFragmentManager.PopBackStackImmediate(); var list = SupportFragmentManager.FindFragmentByTag("listFragment") as RecipeItemListFragment; if (list != null) { list.Reset(); } }
// To support using the Fragment Backstack with back press // Override OnBackPress and have it call this utility method public void OnBackPressWithFragmentManagement() { BackPressed?.Invoke(this, EventArgs.Empty); if (SupportFragmentManager.BackStackEntryCount > 1) { // get the fragment to be popped SupportFragmentManager.PopBackStackImmediate(); var entry = SupportFragmentManager.GetBackStackEntryAt(SupportFragmentManager.BackStackEntryCount - 1); var frag = SupportFragmentManager.FindFragmentByTag(entry.Name); FragmentPoppedOnBack?.Invoke(null, frag); } else { if (SupportFragmentManager.BackStackEntryCount == 1) { SupportFragmentManager.PopBackStackImmediate(); } base.OnBackPressed(); } }
/// <summary> /// Custom navigation handler for Fragments /// </summary> /// <param name="viewType">The Type of the view receiving navigation</param> private void FragmentHandler(Type viewType) { RunOnUiThread(() => { var perspective = MXContainer.Instance.Views.GetViewPerspectiveForViewType(viewType); var mxView = MXContainer.Instance.Views.GetView(perspective); var view = FindViewById <FrameLayout>(Resource.Id.master_fragment); if (mxView == null) { if (view == null) { ReloadDetail = false; } var targetFragment = view != null && view.ChildCount < 1 ? Resource.Id.master_fragment : Resource.Id.detail_fragment; view = FindViewById <FrameLayout>(Resource.Id.detail_fragment); var transaction = SupportFragmentManager.BeginTransaction(); if (view != null && view.ChildCount > 0 && !ReloadDetail) { transaction.SetTransition(Android.Support.V4.App.FragmentTransaction.TransitFragmentOpen); transaction.AddToBackStack(null); } transaction.Replace(targetFragment, (Fragment)Activator.CreateInstance(viewType)); transaction.Commit(); } else { SupportFragmentManager.PopBackStackImmediate(null, Android.Support.V4.App.FragmentManager.PopBackStackInclusive); if (view != null && !ReloadDetail) { var transaction = SupportFragmentManager.BeginTransaction(); transaction.Remove(SupportFragmentManager.FindFragmentById(Resource.Id.detail_fragment)); transaction.Commit(); } } ReloadDetail = false; }); }
private void HandleHomeButton() { if (actionBarDrawerToggle.DrawerIndicatorEnabled) { drawerLayout.OpenDrawer(Android.Support.V4.View.GravityCompat.Start); return; } actionBarDrawerToggle.DrawerIndicatorEnabled = true; if (FragmentManager.BackStackEntryCount >= 1) { FragmentManager.PopBackStackImmediate(); mainToolBar.Menu.RemoveItem(Resource.Id.menu_card_view); mainToolBar.Menu.RemoveItem(Resource.Id.menu_grid_view); mainToolBar.Menu.Clear(); mainToolBar.InflateMenu(Resource.Menu.MainToolBarMenu); ShowHamurgerIcon(); SupportActionBar.Title = Resources.GetString(Resource.String.app_name); floatingAddButton.Visibility = ViewStates.Visible; } else if (SupportFragmentManager.BackStackEntryCount >= 1) { SupportFragmentManager.PopBackStackImmediate(); mainToolBar.Menu.RemoveItem(Resource.Id.menu_card_view); mainToolBar.Menu.RemoveItem(Resource.Id.menu_grid_view); mainToolBar.Menu.Clear(); mainToolBar.InflateMenu(Resource.Menu.MainToolBarMenu); ShowHamurgerIcon(); SupportActionBar.Title = Resources.GetString(Resource.String.app_name); floatingAddButton.Visibility = ViewStates.Visible; } }
private void CallTextFragment(string title, string text) { var textFragment = new TextFragment(title, text); v4FragmentTransaction fragmentTransaction = SupportFragmentManager.BeginTransaction(); fragmentTransaction.Replace(Resource.Id.mainFrameLayout, textFragment); bool qwerty = SupportFragmentManager.PopBackStackImmediate("TextFragment", 0) || (SupportFragmentManager.FindFragmentByTag("TextFragment") == null); if (qwerty) { Log.Info(tag, "true"); SupportFragmentManager.PopBackStack(); fragmentTransaction.AddToBackStack("TextFragment"); } else { Log.Info(tag, "false"); fragmentTransaction.AddToBackStack("TextFragment"); } fragmentTransaction.Commit(); }