protected virtual void PushChildFragment(FragmentManager fragmentManager, FragmentTransaction fragmentTransaction, string fragmentName, IMvxViewModel viewModel) { var newFragment = fragmentManager.FindFragmentByTag(fragmentName); if (newFragment != null) { if (newFragment.IsDetached) { if (newFragment is IMvxFragmentView mvxFragment) { mvxFragment.ViewModel = viewModel; } fragmentTransaction.Attach(newFragment); } } else { var fragment = CreateFragment(fragmentName); fragment.ViewModel = viewModel; var fragmentView = fragment as Fragment; if (fragmentView != null) { fragmentTransaction.Add(FragmentContentId, fragmentView, fragmentName); } } }
public void LoadListFragment() { FragmentTransaction fragmentTx = FragmentManager.BeginTransaction(); fragmentTx.Detach(pageFragment); fragmentTx.Attach(filmsFragment); fragmentTx.Commit(); }
public void LoadMovieFragment() { FragmentTransaction fragmentTx = FragmentManager.BeginTransaction(); fragmentTx.Detach(filmsFragment); fragmentTx.Attach(pageFragment); fragmentTx.AddToBackStack(null); fragmentTx.Commit(); }
public void RefreshFrag() { if (FragmentManager != null) { FragmentTransaction a = FragmentManager.BeginTransaction(); a.Detach(this); a.Attach(this); a.CommitAllowingStateLoss(); } }
protected virtual void PushFragment(FragmentManager fragmentManager, FragmentTransaction fragmentTransaction, MvxFragmentPresentationAttribute fragmentAttribute, MvxViewModelRequest request, IMvxViewModel viewModel, string fragmentName, string fragmentTag = null) { if (string.IsNullOrEmpty(fragmentTag)) { fragmentTag = fragmentName; } var newFragment = fragmentManager.FindFragmentByTag(fragmentTag); if (newFragment != null) { OnBeforeFragmentChanging(fragmentTransaction, newFragment, fragmentAttribute); if (newFragment.IsDetached) { if (newFragment is IMvxFragmentView mvxFragment) { mvxFragment.ViewModel = viewModel; } if (request != null) { newFragment = SaveViewModelRequestInFragmentArguments(newFragment, request); } fragmentTransaction.Attach(newFragment); OnFragmentChanging(fragmentTransaction, newFragment, fragmentAttribute); } } else if (fragmentAttribute != null) { var fragment = CreateFragment(fragmentAttribute, fragmentName); fragment.ViewModel = viewModel; Fragment fragmentView = null; if (request != null) { fragmentView = SaveViewModelRequestInFragmentArguments(fragment.ToFragment(), request); } if (fragmentView != null) { OnBeforeFragmentChanging(fragmentTransaction, fragmentView, fragmentAttribute); fragmentTransaction.Add(fragmentAttribute.FragmentContentId, fragmentView, fragmentTag); OnFragmentChanging(fragmentTransaction, fragmentView, fragmentAttribute); } } }
public void OnTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { var fragment = GetFragmentForPosition(tab.Position); if (fragment.IsDetached) { ft.Attach(fragment); } else { ft.Add(Resource.Id.fragmentcontainer, fragment, ""); } }
public void OnTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { if (this.fragment == null) { this.fragment = (T)global::Android.App.Fragment.Instantiate(this.context, this.fragmentName); if (this.tag != null) { ft.Add(global::Android.Resource.Id.Content, this.fragment, this.tag); } else { ft.Add(global::Android.Resource.Id.Content, this.fragment); } } else { ft.Attach(this.fragment); } }
public void OnTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { Log.Debug(this.GetType().Name, "The tab {0} has been selected.", tab.Text); if (this._fragment == null) { this._fragment = (T)global::Android.App.Fragment.Instantiate(this._context, this._fragmentName); if (this._tag != null) { ft.Add(global::Android.Resource.Id.Content, this._fragment, this._tag); } else { ft.Add(global::Android.Resource.Id.Content, this._fragment); } } else { ft.Attach(this._fragment); } }
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); } }