List of usage examples for android.support.v4.app FragmentManager saveFragmentInstanceState
public abstract Fragment.SavedState saveFragmentInstanceState(Fragment f);
From source file:com.jetradar.multibackstack.BackStackEntry.java
@NonNull public static BackStackEntry create(@NonNull FragmentManager fm, @NonNull Fragment f) { String fname = f.getClass().getName(); SavedState state = fm.saveFragmentInstanceState(f); Bundle args = f.getArguments();//from w w w .j av a2 s. c om return new BackStackEntry(fname, state, args); }
From source file:com.scvngr.levelup.core.test.TestThreadingUtils.java
/** * Saves a {@link Fragment} to instance state, removes it from the activity. Then creates a new * one of the same class, restores the instance state, and re-adds it to the activity. * * @param <T> the type of Fragment * @param instrumentation the test {@link Instrumentation}. * @param activity the {@link FragmentActivity} to add it to. * @param fragment Fragment to remove and re-add. * @return the new instance of the input fragment created using the saved/restored state. *//* ww w . j a v a2s . c om*/ @NonNull public static <T extends Fragment> T saveAndRestoreFragmentStateSync( @NonNull final Instrumentation instrumentation, @NonNull final FragmentActivity activity, @NonNull final T fragment) { final boolean inView = fragment.isInLayout(); final FragmentManager fm = activity.getSupportFragmentManager(); final SavedState savedState = fm.saveFragmentInstanceState(fragment); @SuppressWarnings("unchecked") final T newInstance = (T) Fragment.instantiate(activity, fragment.getClass().getName()); newInstance.setInitialSavedState(savedState); runOnMainSync(instrumentation, activity, new Runnable() { @Override public void run() { fm.beginTransaction().remove(fragment).commit(); } }); addFragmentInMainSync(instrumentation, activity, newInstance, inView); return newInstance; }
From source file:org.solovyev.android.messenger.BaseFragmentActivity.java
@Nonnull private MultiPaneFragmentDef newCopyingFragmentDef(@Nonnull final Fragment fragment, boolean addToBackStack) { final FragmentManager fm = getSupportFragmentManager(); final Fragment.SavedState fragmentSavedState = fm.saveFragmentInstanceState(fragment); final String fragmentTag = fragment.getTag(); final Bundle fragmentArguments = fragment.getArguments(); return MultiPaneFragmentDef.newInstance(fragmentTag, addToBackStack, new Builder<Fragment>() { @Nonnull//w w w .j ava 2 s .c o m @Override public Fragment build() { final Fragment newFragment = Fragment.instantiate(BaseFragmentActivity.this, fragment.getClass().getName(), fragmentArguments); newFragment.setInitialSavedState(fragmentSavedState); return newFragment; } }, null); }
From source file:com.erevacation.challenge.ui.base.navigator.BaseNavigator.java
private void replaceFragmentInternal(FragmentManager fm, @IdRes int containerId, Fragment fragment, String fragmentTag, Bundle args, boolean addToBackStack, String backStackTag) { if (args != null) { fragment.setArguments(args);/*from ww w. jav a 2 s.c o m*/ } if (addToBackStack) { Fragment replacedFragment = fm.findFragmentById(containerId); if (replacedFragment != null) { fm.saveFragmentInstanceState(replacedFragment); } mFragmentBackStackAnimations.apply(fm.beginTransaction()).add(containerId, fragment, fragmentTag) .addToBackStack(backStackTag).commit(); fm.executePendingTransactions(); } else { mFragmentAnimations.apply(fm.beginTransaction()).replace(containerId, fragment, fragmentTag) .commitNow(); } }
From source file:com.erevacation.reactiveanimations.ui.base.navigator.BaseNavigator.java
private void replaceFragmentInternal(FragmentManager fm, @IdRes int containerId, Fragment fragment, String fragmentTag, Bundle args, boolean addToBackStack, String backStackTag) { if (args != null) { fragment.setArguments(args);// ww w .j av a 2 s. c o m } if (addToBackStack) { Fragment replacedFragment = fm.findFragmentById(containerId); if (replacedFragment != null) { fm.saveFragmentInstanceState(replacedFragment); } mFragmentBackStackAnimations.apply(fm.beginTransaction()).replace(containerId, fragment, fragmentTag) .addToBackStack(backStackTag).commit(); fm.executePendingTransactions(); } else { mFragmentAnimations.apply(fm.beginTransaction()).replace(containerId, fragment, fragmentTag) .commitNow(); } }
From source file:com.erevacation.challenge.ui.base.navigator.BaseNavigator.java
private void replaceFragmentInternalWithSharedElement(FragmentManager fm, @IdRes int containerId, Fragment fragment, String fragmentTag, Bundle args, boolean addToBackStack, String backStackTag, View sharedElement, String transitionName) { if (args != null) { fragment.setArguments(args);//from w ww .j a v a 2 s . c om } if (addToBackStack) { Fragment replacedFragment = fm.findFragmentById(containerId); if (replacedFragment != null) { fm.saveFragmentInstanceState(replacedFragment); } mFragmentBackStackAnimations.apply(fm.beginTransaction()) .addSharedElement(sharedElement, transitionName).add(containerId, fragment, fragmentTag) .addToBackStack(backStackTag).commit(); fm.executePendingTransactions(); } else { mFragmentAnimations.apply(fm.beginTransaction()).replace(containerId, fragment, fragmentTag) .commitNow(); } }
From source file:com.erevacation.reactiveanimations.ui.base.navigator.BaseNavigator.java
private void replaceFragmentInternalWithSharedElement(FragmentManager fm, @IdRes int containerId, Fragment fragment, String fragmentTag, Bundle args, boolean addToBackStack, String backStackTag, View sharedElement, String transitionName) { if (args != null) { fragment.setArguments(args);//from www . j a v a 2 s .c om } if (addToBackStack) { Fragment replacedFragment = fm.findFragmentById(containerId); if (replacedFragment != null) { fm.saveFragmentInstanceState(replacedFragment); } mFragmentBackStackAnimations.apply(fm.beginTransaction()) .addSharedElement(sharedElement, transitionName).replace(containerId, fragment, fragmentTag) .addToBackStack(backStackTag).commit(); fm.executePendingTransactions(); } else { mFragmentAnimations.apply(fm.beginTransaction()).replace(containerId, fragment, fragmentTag) .commitNow(); } }