protected override IMvxAndroidViewPresenter CreateViewPresenter() { var mvxFragmentsPresenter = new MvxFragmentsPresenter(AndroidViewAssemblies); Mvx.RegisterSingleton<IMvxAndroidViewPresenter>(mvxFragmentsPresenter); return mvxFragmentsPresenter; }
/// <summary> /// This is very important to override. The default view presenter does not know how to show fragments! /// </summary> protected override IMvxAndroidViewPresenter CreateViewPresenter() { var mvxFragmentsPresenter = new MvxFragmentsPresenter(AndroidViewAssemblies); Mvx.RegisterSingleton<IMvxAndroidViewPresenter>(mvxFragmentsPresenter); //add a presentation hint handler to listen for pop to root mvxFragmentsPresenter.AddPresentationHintHandler<MvxPanelPopToRootPresentationHint>(hint => { var activity = Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity; var fragmentActivity = activity as Android.Support.V4.App.FragmentActivity; for (int i = 0; i < fragmentActivity.SupportFragmentManager.BackStackEntryCount; i++) { fragmentActivity.SupportFragmentManager.PopBackStack(); } return true; }); //register the presentation hint to pop to root //picked up in the third view model Mvx.RegisterSingleton<MvxPresentationHint>(() => new MvxPanelPopToRootPresentationHint()); return mvxFragmentsPresenter; }