If you have the following setting:
FragmentA calls FragmentB with SharedElementEnterTransition, e.g.
private final TransitionSet transition = new TransitionSet()
.addTransition(new ChangeBounds());
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment, fragment.getClass().getSimpleName());
transaction.addSharedElement(view, view.getTransitionName());
fragment.setSharedElementEnterTransition(transition);
fragment.setSharedElementReturnTransition(transition);
transaction.commit();
SharedElementTransition . SharedElementEnterTransition FragmentB onAttach, :
@Override
public void onAttach(Context context) {
super.onAttach(context);
TransitionSet transitionSet = (TransitionSet) getSharedElementEnterTransition();
if (transitionSet != null) {
transitionSet.addListener(new Transition.TransitionListener() {
@Override
public void onTransitionEnd(@NonNull Transition transition) {
transition.removeListener(this);
}
@Override
public void onTransitionStart(@NonNull Transition transition) {}
@Override
public void onTransitionCancel(@NonNull Transition transition) {}
@Override
public void onTransitionPause(@NonNull Transition transition) {}
@Override
public void onTransitionResume(@NonNull Transition transition) {}
});
}
}
, , onAttach().