/// <summary> /// Navigate to Stock /// </summary> void NavigateToTrailerStock() { if (SupportFragmentManager.BackStackEntryCount != 0) { var count = SupportFragmentManager.BackStackEntryCount - 1; var entry = SupportFragmentManager.GetBackStackEntryAt(count); // prevent jumping into stock screen from stock screen if (entry.Name == DriverStockFragment.TAG) { return; } } var fragment = DriverStockFragment.NewInstance(true); NavigateToFragment(fragment, DriverStockFragment.TAG); }
// 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(); } }