static void initialBackground( GuidedStepSupportFragment fragment, int id, FragmentTransaction ft) { if (fragment.getContainerIdForBackground() != View.NO_ID) { Fragment backgroundFragment = fragment.onProvideBackgroundSupportFragment(); if (backgroundFragment != null) { ft.replace(fragment.getContainerIdForBackground(), backgroundFragment); } } }
/** * Adds the specified GuidedStepSupportFragment to the fragment stack, replacing any existing * GuidedStepSupportFragments in the stack, and configuring the fragment-to-fragment custom * transitions. A backstack entry is added, so the fragment will be dismissed when BACK key is * pressed. * <li>If current fragment on stack is GuidedStepSupportFragment: assign {@link #UI_STYLE_DEFAULT} * <li>If current fragment on stack is not GuidedStepSupportFragment: assign {@link * #UI_STYLE_ENTRANCE} * * <p>Note: currently fragments added using this method must be created programmatically * rather than via XML. * * @param fragmentManager The FragmentManager to be used in the transaction. * @param fragment The GuidedStepSupportFragment to be inserted into the fragment stack. * @param id The id of container to add GuidedStepSupportFragment, can be android.R.id.content. * @return The ID returned by the call FragmentTransaction.replace. */ public static int add( FragmentManager fragmentManager, GuidedStepSupportFragment fragment, int id) { boolean inGuidedStep = getCurrentGuidedStepSupportFragment(fragmentManager) != null; if (IS_FRAMEWORK_FRAGMENT && Build.VERSION.SDK_INT >= 21 && Build.VERSION.SDK_INT < 23 && !inGuidedStep && fragment.getContainerIdForBackground() != View.NO_ID) { // workaround b/22631964 for framework fragment fragmentManager .beginTransaction() .replace(id, new DummyFragment(), TAG_LEAN_BACK_ACTIONS_FRAGMENT) .replace(fragment.getContainerIdForBackground(), new DummyFragment()) .commit(); } FragmentTransaction ft = fragmentManager.beginTransaction(); ft.addToBackStack(null); fragment.setUiStyle(inGuidedStep ? UI_STYLE_DEFAULT : UI_STYLE_ENTRANCE); initialBackground(fragment, id, ft); return ft.replace(id, fragment, TAG_LEAN_BACK_ACTIONS_FRAGMENT).commit(); }