Beispiel #1
0
        private void performReset()
        {
            mAuthorization = null;
            mCustomerId    = Settings.GetCustomerId(this);

            if (mBraintreeFragment == null)
            {
                mBraintreeFragment = (BraintreeFragment)FragmentManager.FindFragmentByTag(mBraintreeFragment.Tag);
            }

            if (mBraintreeFragment != null)
            {
                if (Build.VERSION.SdkInt >= Build.VERSION_CODES.N)
                {
                    FragmentManager.BeginTransaction().Remove(mBraintreeFragment).CommitNow();
                }
                else
                {
                    FragmentManager.BeginTransaction().Remove(mBraintreeFragment).Commit();
                    FragmentManager.ExecutePendingTransactions();
                }

                mBraintreeFragment = null;
            }

            Reset();
            FetchAuthorization();
        }
        public virtual void OnTabChanged(string tag)
        {
            var newTab = _lookup[tag];

            if (_currentTab != newTab)
            {
                var ft = SupportFragmentManager.BeginTransaction();
                OnTabFragmentChanging(tag, ft);
                if (_currentTab?.CachedFragment != null)
                {
                    ft.Detach(_currentTab.CachedFragment);
                }
                if (newTab != null)
                {
                    if (newTab.CachedFragment == null)
                    {
                        newTab.CachedFragment = Fragment.Instantiate(this,
                                                                     FragmentJavaName(newTab.FragmentType),
                                                                     newTab.Bundle);
                        FixupDataContext(newTab);
                        ft.Add(_tabContentId, newTab.CachedFragment, newTab.Tag);
                    }
                    else
                    {
                        FixupDataContext(newTab);
                        ft.Attach(newTab.CachedFragment);
                    }
                }

                _currentTab = newTab;
                ft.Commit();
                FragmentManager.ExecutePendingTransactions();
            }
        }
Beispiel #3
0
        void PerformReset()
        {
            mAuthorization = null;
            mCustomerId    = Settings.GetCustomerId(this);

            if (mBraintreeFragment == null)
            {
                mBraintreeFragment = (BraintreeFragment)FragmentManager
                                     .FindFragmentByTag("com.braintreepayments.api.BraintreeFragment");// change this line later
            }

            if (mBraintreeFragment != null)
            {
                if (Build.VERSION.SdkInt >= BuildVersionCodes.N)
                {
                    FragmentManager.BeginTransaction().Remove(mBraintreeFragment).CommitNow();
                }
                else
                {
                    FragmentManager.BeginTransaction().Remove(mBraintreeFragment).Commit();
                    FragmentManager.ExecutePendingTransactions();
                }

                mBraintreeFragment = null;
            }

            Reset();
            FetchAuthorization();
        }
Beispiel #4
0
 public override void FinishUpdate(ViewGroup container)
 {
     if (_curTransaction == null)
     {
         return;
     }
     _curTransaction.CommitAllowingStateLoss();
     _curTransaction = null;
     _fm.ExecutePendingTransactions();
 }
Beispiel #5
0
        /// <summary>
        ///     Show Fragment with a specific tag at a specific placeholder
        /// </summary>
        /// <param name="tag">The tag for the fragment to lookup</param>
        /// <param name="contentId">Where you want to show the Fragment</param>
        /// <param name="bundle">Bundle which usually contains a Serialized MvxViewModelRequest</param>
        /// <param name="forceAddToBackStack">If you want to force add the fragment to the backstack so on backbutton it will go back to it. Note: This will override IMvxCachedFragmentInfo.AddToBackStack configuration.</param>
        /// <param name="forceReplaceFragment">Force replace a fragment with the same tag at the same contentid</param>
        protected void ShowFragment(string tag, int contentId, Bundle bundle = null, bool forceAddToBackStack = false, bool forceReplaceFragment = false)
        {
            IMvxCachedFragmentInfo fragInfo;

            FragmentCacheConfiguration.TryGetValue(tag, out fragInfo);

            if (fragInfo == null)
            {
                throw new MvxException("Could not find tag: {0} in cache, you need to register it first.", tag);
            }

            // We shouldn't replace the current fragment unless we really need to.
            var shouldReplaceCurrentFragment = forceReplaceFragment || ShouldReplaceCurrentFragment(contentId, tag);

            if (!shouldReplaceCurrentFragment)
            {
                return;
            }

            var ft = FragmentManager.BeginTransaction();

            OnBeforeFragmentChanging(fragInfo, ft);

            fragInfo.ContentId = contentId;

            //If we already have a previously created fragment, we only need to send the new parameters
            if (fragInfo.CachedFragment != null)
            {
                fragInfo.CachedFragment.Arguments.Clear();
                fragInfo.CachedFragment.Arguments.PutAll(bundle);
            }
            else
            {
                //Otherwise, create one and cache it
                fragInfo.CachedFragment = Fragment.Instantiate(this, FragmentJavaName(fragInfo.FragmentType),
                                                               bundle);
                OnFragmentCreated(fragInfo, ft);
            }

            ft.Replace(fragInfo.ContentId, fragInfo.CachedFragment, fragInfo.Tag);


            if (fragInfo.AddToBackStack || forceAddToBackStack)
            {
                ft.AddToBackStack(fragInfo.Tag);
            }

            OnFragmentChanging(fragInfo, ft);
            ft.Commit();
            FragmentManager.ExecutePendingTransactions();
            OnFragmentChanged(fragInfo);
        }
Beispiel #6
0
        public void Show(IView view)
        {
            if (!(view is Fragment fragment))
            {
                throw new Exception("View needs to be of type Android.App.Fragment");
            }

            var transaction = FragmentManager.BeginTransaction();

            transaction.Replace(Resource.Id.rootLayout, fragment);
            transaction.CommitAllowingStateLoss();
            FragmentManager.ExecutePendingTransactions();
        }
Beispiel #7
0
        public override void OnBackPressed()
        {
            //base.OnBackPressed();

            if (FragmentManager.BackStackEntryCount > 0)
            {
                FragmentManager.PopBackStack();
                FragmentManager.ExecutePendingTransactions();
            }
            else
            {
                base.OnBackPressed();
            }
        }
Beispiel #8
0
        /// <summary>
        ///     Show Fragment with a specific tag at a specific placeholder
        /// </summary>
        /// <param name="tag">The tag for the fragment to lookup</param>
        /// <param name="contentId">Where you want to show the Fragment</param>
        /// <param name="bundle">Bundle which usually contains a Serialized MvxViewModelRequest</param>
        protected void ShowFragment(string tag, int contentId, Bundle bundle = null)
        {
            FragmentInfo fragInfo;

            _lookup.TryGetValue(tag, out fragInfo);

            if (fragInfo == null)
            {
                throw new MvxException("Could not find tag: {0} in cache, you need to register it first.", tag);
            }

            string currentFragment;

            _currentFragments.TryGetValue(contentId, out currentFragment);

            // Only do something if we are not currently showing the tag at the contentId
            if (IsContentIdCurrentyShowingFragmentWithTag(contentId, tag))
            {
                return;
            }

            var ft = FragmentManager.BeginTransaction();

            OnBeforeFragmentChanging(tag, ft);

            // if there is a Fragment showing on the contentId we want to present at
            // remove it first.
            RemoveFragmentIfShowing(ft, contentId);

            fragInfo.ContentId = contentId;
            // if we haven't already created a Fragment, do it now
            if (fragInfo.CachedFragment == null)
            {
                fragInfo.CachedFragment = Fragment.Instantiate(this, FragmentJavaName(fragInfo.FragmentType),
                                                               bundle);

                ft.Add(fragInfo.ContentId, fragInfo.CachedFragment, fragInfo.Tag);
            }
            else
            {
                ft.Attach(fragInfo.CachedFragment);
            }

            _currentFragments[contentId] = fragInfo.Tag;

            OnFragmentChanging(tag, ft);
            ft.Commit();
            FragmentManager.ExecutePendingTransactions();
        }
        public void setConsoleFragment()
        {
            ConsoleFragment consoleFragment = getConsoleFragment();

            FragmentManager fragmentManager = this.FragmentManager;

            if (consoleFragment == null)
            {
                consoleFragment = new ConsoleFragment();
                fragmentManager.BeginTransaction()
                .Add(Resource.Id.frame_container, consoleFragment, CONSOLE_FRAGMENT_TAG).CommitAllowingStateLoss();
                fragmentManager.ExecutePendingTransactions();
                SetTitle(Resource.String.app_name);
            }
        }
        public void setMainFragment()
        {
            MainFragment mainFragment = getMainFragment();

            FragmentManager fragmentManager = this.FragmentManager;

            if (mainFragment == null)
            {
                mainFragment = new MainFragment();
                FragmentTransaction fragmentTransaction = fragmentManager.BeginTransaction();
                fragmentTransaction.Replace(Resource.Id.frame_container, mainFragment, MAIN_FRAGMENT_TAG).AddToBackStack(null).Commit();
                fragmentManager.ExecutePendingTransactions();
                this.SetTitle(Resource.String.app_name);
            }
        }
        private void EnterSearchUi()
        {
            inSearchUI = true;
            if (mSearchFragment == null)
            {
                AddSearchFragment();
                return;
            }
            mSearchFragment.UserVisibleHint = true;
            var transaction = SupportFragmentManager.BeginTransaction();

            transaction.Show(mSearchFragment);
            transaction.CommitAllowingStateLoss();
            FragmentManager.ExecutePendingTransactions();
            SetupSearchUi();
        }
Beispiel #12
0
        private void UpdateActionBar()
        {
            FragmentManager.ExecutePendingTransactions();

            int  actionBarTitleId = Resource.String.app_name;
            bool searchEnabled    = true;

            if (FragmentManager.BackStackEntryCount == 1)
            {
                navigationView.SetCheckedItem(Resource.Id.nav_map);
            }
            else if (FragmentManager.BackStackEntryCount > 1)
            {
                Fragment currentFragment = FragmentManager.FindFragmentByTag("SECOND_FRAGMENT");
                switch (currentFragment.GetType().Name)
                {
                case nameof(FavoriteQueriesFragment):
                    actionBarTitleId = Resource.String.favorite_fragment_name;
                    searchEnabled    = false;
                    break;

                case nameof(FavoritePlacesFragment):
                    actionBarTitleId = Resource.String.favorite_fragment_name;
                    searchEnabled    = false;
                    break;

                case nameof(SettingsFragment):
                    actionBarTitleId = Resource.String.settings_fragment_name;
                    searchEnabled    = false;
                    break;
                }
            }

            SupportActionBar.SetTitle(actionBarTitleId);

            OnPrepareOptionsMenu(actionBarMenu);
            actionBarMenu.FindItem(Resource.Id.action_add_to_fav).SetVisible(false);
            actionBarMenu.FindItem(Resource.Id.action_search).SetVisible(searchEnabled);

            if (searchEnabled)
            {
                actionBarMenu.FindItem(Resource.Id.action_search).SetVisible(!isInSearchMode);
                actionBarMenu.FindItem(Resource.Id.action_clear).SetVisible(isInSearchMode);
                actionBarMenu.FindItem(Resource.Id.action_voice).SetVisible(isInSearchMode);
            }
        }
Beispiel #13
0
        public override bool OnOptionsItemSelected(IMenuItem item)
        {
            if (item.ItemId == Android.Resource.Id.Home)
            {
                if (FragmentManager.BackStackEntryCount > 0)
                {
                    FragmentManager.PopBackStack();
                    FragmentManager.ExecutePendingTransactions();
                }
                else
                {
                    Finish();
                }
            }

            return(false);
        }
        private void HandleListClick()
        {
            ProductsList.OnProductClickEvent += (Products.Model.Products.ProductEntity product) => {
                ProductsDetail = new ProductsDetailFragment();

                FragmentTransaction transaction = FragmentManager.BeginTransaction();

                transaction.SetCustomAnimations(Resource.Animation.enter_from_right, Resource.Animation.exit_to_left);
                transaction.Replace(Resource.Id.productsFragmentContainer, ProductsDetail);
                transaction.AddToBackStack(product.Name);

                transaction.Commit();

                FragmentManager.ExecutePendingTransactions();

                ProductsDetail.ShowProduct(product);
            };
        }
Beispiel #15
0
        void SwitchToExperiment <TFragment> () where TFragment : Fragment, IExperiment, new()
        {
            if (currentExperiment is TFragment)
            {
                return;
            }

            var frag = new TFragment();

            FragmentManager.BeginTransaction()
            .SetCustomAnimations(Resource.Animator.fragment_enter, Resource.Animator.fragment_exit)
            .Replace(Resource.Id.contentContainer, frag)
            .Commit();
            FragmentManager.ExecutePendingTransactions();

            currentExperiment = frag;
            var curve = currentExperiment.CreatePreferredTimeCurve();

            currentExperiment.SetTimeCurve(curve);
            graph.SetAnimationCompletion(0);
            graph.SetInterpolatorCurve(curve);
        }
Beispiel #16
0
        private void ShowPickerFragment(PickerFragment fragment)
        {
            fragment.OnErrorListener = new ErrorListener((f, e) => {
                String text = GetString(Resource.String.exception, e.Message);
                Toast toast = Toast.MakeText(this, text, ToastLength.Short);
                toast.Show();
            });

            FragmentManager fm = SupportFragmentManager;

            fm.BeginTransaction()
            .Replace(Resource.Id.fragment_container, fragment)
            .AddToBackStack(null)
            .Commit();

            controlsContainer.Visibility = ViewStates.Gone;

            // We want the fragment fully created so we can use it immediately.
            fm.ExecutePendingTransactions();

            fragment.LoadData(false);
        }
Beispiel #17
0
        /// <summary>
        ///     Show Fragment with a specific tag at a specific placeholder
        /// </summary>
        /// <param name="tag">The tag for the fragment to lookup</param>
        /// <param name="contentId">Where you want to show the Fragment</param>
        /// <param name="bundle">Bundle which usually contains a Serialized MvxViewModelRequest</param>
        /// <param name="addToBackStack">Bool whcih indicates if we are adding the fragment to the back stack</param>
        protected void ShowFragment(string tag, int contentId, Bundle bundle = null, bool addToBackStack = true)
        {
            //Mvx.Trace("BaseCachingFragmentActivity:ShowFragment tag = " + tag + ", addedToBackStack = " + addToBackStack);
            //Mvx.Trace("BackStackEntryCount = " + FragmentManager.BackStackEntryCount);
            FragmentInfo fragInfo;

            _lookup.TryGetValue(tag, out fragInfo);

            if (fragInfo == null)
            {
                throw new MvxException("Could not find tag: {0} in cache, you need to register it first.", tag);
            }

            string currentFragment;

            _currentFragments.TryGetValue(contentId, out currentFragment);

            // Only do something if we are not currently showing the tag at the contentId
            if (IsContentIdCurrentlyShowingFragmentWithTag(contentId, tag))
            {
                return;
            }

            var ft = FragmentManager.BeginTransaction();

            OnBeforeFragmentChanging(tag, ft);

            // if there is a Fragment showing on the contentId we want to present at
            // remove it first.
            RemoveFragmentIfShowing(ft, contentId);

            fragInfo.ContentId = contentId;

            // if we haven't already created a Fragment, do it now
            if (fragInfo.CachedFragment == null)
            {
                fragInfo.CachedFragment = Fragment.Instantiate(
                    this,
                    Java.Lang.Class.FromType(fragInfo.FragmentType).Name,
                    bundle);

                //fragInfo.CachedFragment = Fragment.Instantiate(this, FragmentJavaName(fragInfo.FragmentType),
                //    bundle);
            }

            ft.Replace(fragInfo.ContentId, fragInfo.CachedFragment, fragInfo.Tag);

            OnFragmentChanging(tag, ft);
            if (fragInfo.IsRootFrag)
            {
                _currentRootTag = fragInfo.Tag;
            }

            if (!fragInfo.IsRootFrag && addToBackStack)
            {
                //Mvx.Trace(String.Format("adding {0} to back stack...", fragInfo.CachedFragment.GetType().Name));
                ft.AddToBackStack(fragInfo.CachedFragment.GetType().Name);
            }

            _currentFragments[contentId] = fragInfo.Tag;

            ft.Commit();
            FragmentManager.ExecutePendingTransactions();
        }
Beispiel #18
0
        /// <summary>
        ///     Show Fragment with a specific tag at a specific placeholder
        /// </summary>
        /// <param name="tag">The tag for the fragment to lookup</param>
        /// <param name="contentId">Where you want to show the Fragment</param>
        /// <param name="bundle">Bundle which usually contains a Serialized MvxViewModelRequest</param>
        /// <param name="forceAddToBackStack">If you want to force add the fragment to the backstack so on backbutton it will go back to it. Note: This will override IMvxCachedFragmentInfo.AddToBackStack configuration.</param>
        /// <param name="forceReplaceFragment">If you want the fragment to be re-created</param>
        protected virtual void ShowFragment(string tag, int contentId, Bundle bundle, bool forceAddToBackStack = false, bool forceReplaceFragment = false)
        {
            IMvxCachedFragmentInfo fragInfo;

            FragmentCacheConfiguration.TryGetValue(tag, out fragInfo);

            IMvxCachedFragmentInfo currentFragInfo = null;
            var currentFragment = FragmentManager.FindFragmentById(contentId);

            if (currentFragment != null)
            {
                FragmentCacheConfiguration.TryGetValue(currentFragment.Tag, out currentFragInfo);
            }

            if (fragInfo == null)
            {
                throw new MvxException("Could not find tag: {0} in cache, you need to register it first.", tag);
            }

            // We shouldn't replace the current fragment unless we really need to.
            FragmentReplaceMode fragmentReplaceMode = FragmentReplaceMode.ReplaceFragmentAndViewModel;

            if (!forceReplaceFragment)
            {
                fragmentReplaceMode = ShouldReplaceCurrentFragment(fragInfo, currentFragInfo, bundle);
            }

            if (fragmentReplaceMode == FragmentReplaceMode.NoReplace)
            {
                return;
            }

            var ft = FragmentManager.BeginTransaction();

            OnBeforeFragmentChanging(fragInfo, ft);

            fragInfo.ContentId = contentId;

            //If we already have a previously created fragment, we only need to send the new parameters
            if (fragInfo.CachedFragment != null && fragmentReplaceMode == FragmentReplaceMode.ReplaceFragment)
            {
                (fragInfo.CachedFragment as Fragment).Arguments.Clear();
                (fragInfo.CachedFragment as Fragment).Arguments.PutAll(bundle);
            }
            else
            {
                //Otherwise, create one and cache it
                fragInfo.CachedFragment = Fragment.Instantiate(this, FragmentJavaName(fragInfo.FragmentType),
                                                               bundle) as IMvxFragmentView;
                OnFragmentCreated(fragInfo, ft);
            }

            currentFragment = fragInfo.CachedFragment as Fragment;
            ft.Replace(fragInfo.ContentId, fragInfo.CachedFragment as Fragment, fragInfo.Tag);

            //if replacing ViewModel then clear the cache after the fragment
            //has been added to the transaction so that the Tag property is not null
            //and the UniqueImmutableCacheTag property (if not overridden) has the correct value
            if (fragmentReplaceMode == FragmentReplaceMode.ReplaceFragmentAndViewModel)
            {
                var cache = Mvx.GetSingleton <IMvxMultipleViewModelCache>();
                cache.GetAndClear(fragInfo.ViewModelType, GetTagFromFragment(fragInfo.CachedFragment as Fragment));
            }

            if ((currentFragment != null && fragInfo.AddToBackStack) || forceAddToBackStack)
            {
                ft.AddToBackStack(fragInfo.Tag);
            }

            OnFragmentChanging(fragInfo, ft);
            ft.Commit();
            FragmentManager.ExecutePendingTransactions();
            OnFragmentChanged(fragInfo);
        }
Beispiel #19
0
        public static void SetContentView([NotNull] this ViewGroup frameLayout, object content,
                                          FragmentTransaction transaction = null, Action <ViewGroup, Fragment, FragmentTransaction> updateAction = null)
        {
            Should.NotBeNull(frameLayout, "frameLayout");
            if (content == null)
            {
                bool hasFragment     = false;
                var  fragmentManager = frameLayout.GetFragmentManager();
                if (fragmentManager != null)
                {
                    var fragment = fragmentManager.FindFragmentById(frameLayout.Id);
                    hasFragment = fragment != null;
                    if (hasFragment && !fragmentManager.IsDestroyed)
                    {
                        fragmentManager.BeginTransaction().Remove(fragment).CommitAllowingStateLoss();
                        fragmentManager.ExecutePendingTransactions();
                    }
                }
                if (!hasFragment)
                {
                    frameLayout.RemoveAllViews();
                }
                return;
            }

            var view = content as View;

            if (view == null)
            {
                var fragment = (Fragment)content;
                ValidateViewIdFragment(frameLayout, fragment);
                var             addToBackStack = PlatformDataBindingModule.AddToBackStackMember.GetValue(frameLayout, null);
                FragmentManager manager        = null;
                if (transaction == null)
                {
                    manager = frameLayout.GetFragmentManager();
                    if (manager == null)
                    {
                        return;
                    }
                    transaction = manager.BeginTransaction();
                }
                if (addToBackStack && fragment.Arguments != null)
                {
                    addToBackStack = !fragment.Arguments.GetBoolean(AddedToBackStackKey);
                }

                if (updateAction == null)
                {
                    if (fragment.IsDetached)
                    {
                        transaction.Attach(fragment);
                    }
                    else
                    {
                        if (addToBackStack)
                        {
                            if (fragment.Arguments == null)
                            {
                                fragment.Arguments = new Bundle();
                            }
                            fragment.Arguments.PutBoolean(AddedToBackStackKey, true);
                        }
                        transaction.Replace(frameLayout.Id, fragment);
                    }
                }
                else
                {
                    updateAction(frameLayout, fragment, transaction);
                }
                if (addToBackStack)
                {
                    transaction.AddToBackStack(null);
                }


                if (manager != null)
                {
                    transaction.Commit();
                    manager.ExecutePendingTransactions();
                }
            }
            else
            {
                if (frameLayout.ChildCount == 1 && frameLayout.GetChildAt(0) == view)
                {
                    return;
                }
                frameLayout.RemoveAllViews();
                frameLayout.AddView(view);
            }
        }
        public void ShowFragment(ViewEnumeration f, Java.Lang.Object extraData = null)
        {
            var trans = SupportFragmentManager.BeginTransaction();

            trans.SetCustomAnimations(Resource.Animation.slide_in, Resource.Animation.slide_out, Resource.Animation.slide_in, Resource.Animation.slide_out);
            SupportFragment fragment = null;

            switch (f)
            {
            case ViewEnumeration.VIEW_ANIMAL:
                if (mCurrentFragment is FragmentListAnimals)
                {
                    return;
                }
                else if (mCurrentFragment is FragmentAddAnimal)
                {
                    trans.Remove(fragmentAddAnimal);
                }
                else if (mCurrentFragment is FragmentListScientists)
                {
                    trans.Remove(mFragmentListScience);
                }
                else if (mCurrentFragment is FragmentAddScientist)
                {
                    trans.Remove(mFragmentAddScience);
                }
                else
                {
                    trans.Remove(mFragmentSetting);
                }
                mFragmentListAnimals = new FragmentListAnimals();
                trans.Add(Resource.Id.fragmentContainer, mFragmentListAnimals, "FragmentListAnimals");

                fragment = mFragmentListAnimals;
                EnableButtonSave(false);
                mFragmentListAnimals.RecalculateList();
                break;

            case ViewEnumeration.VIEW_DETAIL_ANIMAL:
                EnableButtonSave(true);
                fragmentAddAnimal = new FragmentAddAnimal();
                trans.Add(Resource.Id.fragmentContainer, fragmentAddAnimal, "FragmentAnimal");
                fragment = fragmentAddAnimal;
                trans.Remove(mFragmentListAnimals);
                if (extraData != null)
                {
                    fragmentAddAnimal.SetAnimal((AnimalAndroid)extraData);
                }
                break;

            case ViewEnumeration.VIEW_DETAIL_SCIENTIST:
                EnableButtonSave(true);
                mFragmentAddScience = new FragmentAddScientist();
                fragment            = mFragmentAddScience;
                trans.Remove(mFragmentListScience);
                trans.Add(Resource.Id.fragmentContainer, mFragmentAddScience, "FragmentAddScientist");
                mFragmentAddScience.ResetFields();
                if (extraData != null)
                {
                    mFragmentAddScience.scientist = ((ScientistAndroid)extraData);
                }
                break;

            case ViewEnumeration.VIEW_SCIENTIST:
                EnableButtonSave(false);
                if (mCurrentFragment is FragmentListScientists)
                {
                    return;
                }
                else if (mCurrentFragment is FragmentAddAnimal)
                {
                    trans.Remove(fragmentAddAnimal);
                }
                else if (mCurrentFragment is FragmentListAnimals)
                {
                    trans.Remove(mFragmentListAnimals);
                }
                else if (mCurrentFragment is FragmentAddScientist)
                {
                    trans.Remove(mFragmentAddScience);
                }
                else
                {
                    trans.Remove(mFragmentSetting);
                }
                trans.Add(Resource.Id.fragmentContainer, mFragmentListScience, "FragmentListScientist");
                fragment = mFragmentListScience;
                //	fragment.OnCreateView (this.LayoutInflater, this.LayoutInflater, null);
                mFragmentListScience.RecalculateList();
                break;

            case ViewEnumeration.VIEW_SETTINGS:
                if (mCurrentFragment is FragmentSettings)
                {
                    return;
                }
                else if (mCurrentFragment is FragmentAddAnimal)
                {
                    trans.Remove(fragmentAddAnimal);
                }
                else if (mCurrentFragment is FragmentListAnimals)
                {
                    trans.Remove(mFragmentListAnimals);
                }
                else if (mCurrentFragment is FragmentAddScientist)
                {
                    trans.Remove(mFragmentAddScience);
                }
                else
                {
                    trans.Remove(mFragmentListScience);
                }
                mFragmentSetting = new FragmentSettings();
                trans.Add(Resource.Id.fragmentContainer, mFragmentSetting, "FragmentListScientist");
                EnableButtonSave(false);
                SupportActionBar.SetTitle(Resource.String.settings);
                fragment = mFragmentSetting;
                break;
            }

            if (fragment != null)
            {
                if (fragment.View != null)
                {
                    fragment.View.BringToFront();
                }
            }
            if (mCurrentFragment.View != null)
            {
                mCurrentFragment.View.BringToFront();
            }

            trans.Hide(mCurrentFragment);
            trans.Show(fragment);
            trans.AddToBackStack(null);
            mStackFragments.Push(mCurrentFragment);
            //trans.Remove (mCurrentFragment);
            trans.Commit();
            FragmentManager.ExecutePendingTransactions();
            //mFragmentManager.executePendingTransactions();

            mCurrentFragment = fragment;
        }
Beispiel #21
0
 public static bool ExecutePendingTransactionsEx(this FragmentManager fragmentManager)
 {
     return(fragmentManager.ExecutePendingTransactions());
 }