コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }