public override void OnBackPressed() { Fragment currentFragment = SupportFragmentManager.FindFragmentByTag(CurrentContentFragmentTag); if (currentFragment is WebViewFragment) { WebViewFragment webFragment = (WebViewFragment)currentFragment; if (webFragment.OnBackPressed()) { return; } } base.OnBackPressed(); }
public void UpdateContent(Uri uri) { Fragment fragment; string tag; FragmentManager fm = SupportFragmentManager; FragmentTransaction tr = fm.BeginTransaction(); if (CurrentContentFragmentTag != null) { Fragment currentFragment = fm.FindFragmentByTag(CurrentContentFragmentTag); if (currentFragment != null) { tr.Hide(currentFragment); } } if (AboutFragment.ABOUT_URI.Equals(uri)) { tag = AboutFragment.TAG; Fragment foundFragment = fm.FindFragmentByTag(tag); if (foundFragment != null) { fragment = foundFragment; } else { fragment = new AboutFragment(); } } else if (SandboxFragment.SETTINGS_URI.Equals(uri)) { tag = SandboxFragment.TAG; SandboxFragment foundFragment = (SandboxFragment)fm.FindFragmentByTag(tag); if (foundFragment != null) { foundFragment.onSettingsChangedListener = mSettingsChangedListener; fragment = foundFragment; } else { SandboxFragment settingsFragment = new SandboxFragment(); settingsFragment.onSettingsChangedListener = mSettingsChangedListener; fragment = settingsFragment; } } else if (uri != null) { tag = WebViewFragment.TAG; WebViewFragment webViewFragment; Fragment foundFragment = fm.FindFragmentByTag(tag); if (foundFragment != null) { fragment = foundFragment; webViewFragment = (WebViewFragment)fragment; } else { webViewFragment = new WebViewFragment(); fragment = webViewFragment; } webViewFragment.Url = uri.ToString(); } else { return; } if (fragment.IsAdded) { tr.Show(fragment); } else { tr.Add(Resource.Id.content, fragment, tag); } tr.Commit(); CurrentUri = uri; CurrentContentFragmentTag = tag; }