public virtual MvxFragmentAttribute GetMvxFragmentAttributeAssociatedWithCurrentHost(Type fragmentViewModelType) { InitializeIfNeeded(); var currentActivityViewModelType = GetCurrentActivityViewModelType(); Activity currentActivity = Mvx.Resolve <IMvxAndroidCurrentTopActivity>().Activity; var fragmentAttributes = GetMvxFragmentAssociatedAttributes(fragmentViewModelType) .Where(x => x.ParentActivityViewModelType == currentActivityViewModelType); MvxFragmentAttribute attribute = fragmentAttributes.FirstOrDefault(); if (fragmentAttributes.Count() > 1) { foreach (var item in fragmentAttributes) { if (currentActivity.FindViewById(item.FragmentContentId) != null) { attribute = item; break; } } } return(attribute); }
public virtual bool Show(MvxViewModelRequest request, Bundle bundle, Type fragmentType, MvxFragmentAttribute fragmentAttribute) { var fragmentTag = GetFragmentTag(request, bundle, fragmentType); FragmentCacheConfiguration.RegisterFragmentToCache(fragmentTag, fragmentType, request.ViewModelType, fragmentAttribute.AddToBackStack); ShowFragment(fragmentTag, fragmentAttribute.FragmentContentId, bundle); return(true); }
public virtual bool Show(MvxViewModelRequest request, Bundle bundle, Type fragmentType, MvxFragmentAttribute fragmentAttribute) { var fragmentTag = GetFragmentTag(request, bundle, fragmentType); FragmentCacheConfiguration.RegisterFragmentToCache(fragmentTag, fragmentType, request.ViewModelType); int contentId; if (fragmentAttribute.FragmentContentId != null) { contentId = fragmentAttribute.FragmentContentId.Value; } else { contentId = Resources.GetIdentifier(fragmentAttribute.FragmentContentName, "id", this.PackageName); } ShowFragment(fragmentTag, contentId, bundle); return(true); }
public bool Show(MvxViewModelRequest request, Bundle bundle, Type fragmentType, MvxFragmentAttribute fragmentAttribute) { var fragmentView = (IMvxFragmentView)Activator.CreateInstance(fragmentType); fragmentView.LoadViewModelFrom(request); currentViewModel = fragmentView.DataContext as MvxViewModel; var ft = SupportFragmentManager.BeginTransaction(); ft.Replace(Resource.Id.main, fragmentView.ToFragment()); ft.Commit(); return(true); }