fragment/src/main/java/androidx/fragment/app/FragmentManager.java
private void completeExecute(BackStackRecord record, boolean isPop, boolean runTransitions,
            boolean moveToState) {
        if (isPop) {
            record.executePopOps(moveToState);
        } else {
            record.executeOps();
        }
        ArrayList<BackStackRecord> records = new ArrayList<>(1);
        ArrayList<Boolean> isRecordPop = new ArrayList<>(1);
        records.add(record);
        isRecordPop.add(isPop);
        if (runTransitions) {
            FragmentTransition.startTransitions(this, records, isRecordPop, 0, 1, true);
        }
        if (moveToState) {
            moveToState(mCurState, true);
        }

        if (mActive != null) {
            final int numActive = mActive.size();
            for (int i = 0; i < numActive; i++) {
                // Allow added fragments to be removed during the pop since we aren't going
                // to move them to the final state with moveToState(mCurState).
                Fragment fragment = mActive.valueAt(i);
                if (fragment != null && fragment.mView != null && fragment.mIsNewlyAdded
                        && record.interactsWith(fragment.mContainerId)) {
                    if (fragment.mPostponedAlpha > 0) {
                        fragment.mView.setAlpha(fragment.mPostponedAlpha);
                    }
                    if (moveToState) {
                        fragment.mPostponedAlpha = 0;
                    } else {
                        fragment.mPostponedAlpha = -1;
                        fragment.mIsNewlyAdded = false;
                    }
                }
            }
        }
    }
/**
     * When a postponed transaction is ready to be started, this completes the transaction,
     * removing, hiding, or showing views as well as starting the animations and transitions.
     * <p>
     * {@code runtransitions} is set to false when the transaction postponement was interrupted
     * abnormally -- normally by a new transaction being started that affects the postponed
     * transaction.
     *
     * @param record The transaction to run
     * @param isPop true if record is popping or false if it is adding
     * @param runTransitions true if the fragment transition should be run or false otherwise.
     * @param moveToState true if the state should be changed after executing the operations.
     *                    This is false when the transaction is canceled when a postponed
     *                    transaction is popped.
     */
When a postponed transaction is ready to be started, this completes the transaction,
removing, hiding, or showing views as well as starting the animations and transitions.

runtransitions is set to false when the transaction postponement was interrupted
abnormally -- normally by a new transaction being started that affects the postponed
transaction.

@param record The transaction to run
@param isPop true if record is popping or false if it is adding
@param runTransitions true if the fragment transition should be run or false otherwise.
@param moveToState true if the state should be changed after executing the operations.
This is false when the transaction is canceled when a postponed
transaction is popped.
When a postponed transaction is ready to be started this completes the transaction removing hiding or showing views as well as starting the animations and transitions . runtransitions is set to false when the transaction postponement was interrupted abnormally -- normally by a new transaction being started that affects the postponed transaction . @param record The transaction to run @param isPop true if record is popping or false if it is adding @param runTransitions true if the fragment transition should be run or false otherwise . @param moveToState true if the state should be changed after executing the operations . This is false when the transaction is canceled when a postponed transaction is popped .
private void completeExecute(BackStackRecord record, boolean isPop, boolean runTransitions,
            boolean moveToState) {
        if (isPop) {
            record.executePopOps(moveToState);
        } else {
            record.executeOps();
        }
        ArrayList<BackStackRecord> records = new ArrayList<>(1);
        ArrayList<Boolean> isRecordPop = new ArrayList<>(1);
        records.add(record);
        isRecordPop.add(isPop);
        if (runTransitions) {
            FragmentTransition.startTransitions(this, records, isRecordPop, 0, 1, true);
        }
        if (moveToState) {
            moveToState(mCurState, true);
        }
        if (mActive != null) {
            final int numActive = mActive.size();
            for (int i = 0; i < numActive; i++) {
                Fragment fragment = mActive.valueAt(i);
                if (fragment != null && fragment.mView != null && fragment.mIsNewlyAdded
                        && record.interactsWith(fragment.mContainerId)) {
                    if (fragment.mPostponedAlpha > 0) {
                        fragment.mView.setAlpha(fragment.mPostponedAlpha);
                    }
                    if (moveToState) {
                        fragment.mPostponedAlpha = 0;
                    } else {
                        fragment.mPostponedAlpha = -1;
                        fragment.mIsNewlyAdded = false;
                    }
                }
            }
        }
    }
private void completeExecute ( BackStackRecord record , boolean isPop , boolean runTransitions , boolean moveToState ) { if ( isPop ) { record . executePopOps ( moveToState ) ; } else { record . executeOps ( ) ; } ArrayList < BackStackRecord > records = new ArrayList < > ( 1 ) ; ArrayList < Boolean > isRecordPop = new ArrayList < > ( 1 ) ; records . add ( record ) ; isRecordPop . add ( isPop ) ; if ( runTransitions ) { FragmentTransition . startTransitions ( this , records , isRecordPop , 0 , 1 , true ) ; } if ( moveToState ) { moveToState ( mCurState , true ) ; } if ( mActive != null ) { final int numActive = mActive . size ( ) ; for ( int i = 0 ; i < numActive ; i ++ ) { Fragment fragment = mActive . valueAt ( i ) ; if ( fragment != null && fragment . mView != null && fragment . mIsNewlyAdded && record . interactsWith ( fragment . mContainerId ) ) { if ( fragment . mPostponedAlpha > 0 ) { fragment . mView . setAlpha ( fragment . mPostponedAlpha ) ; } if ( moveToState ) { fragment . mPostponedAlpha = 0 ; } else { fragment . mPostponedAlpha = - 1 ; fragment . mIsNewlyAdded = false ; } } } } }
When a postponed transaction is ready to be started, this completes the transaction,
 removing, hiding, or showing views as well as starting the animations and transitions.
When a postponed transaction is ready to be started this completes the transaction removing hiding or showing views as well as starting the animations and transitions .
// Allow added fragments to be removed during the pop since we aren't going // to move them to the final state with moveToState(mCurState).