@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public DetailsTransition() { setOrdering(ORDERING_TOGETHER); addTransition(new ChangeBounds()) .addTransition(new ChangeTransform()) .setStartDelay(25) .setDuration(350) .addTransition(new ChangeImageTransform()); } }
private void performTransition() { if (isDestroyed()) { return; } Fragment previousFragment = mFragmentManager.findFragmentById(R.id.fragment_container); Fragment nextFragment = Fragment2.newInstance(); FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); // 1. Exit for Previous Fragment Fade exitFade = new Fade(); exitFade.setDuration(FADE_DEFAULT_TIME); previousFragment.setExitTransition(exitFade); // 2. Shared Elements Transition TransitionSet enterTransitionSet = new TransitionSet(); enterTransitionSet.addTransition(TransitionInflater.from(this).inflateTransition(android.R.transition.move)); enterTransitionSet.setDuration(MOVE_DEFAULT_TIME); enterTransitionSet.setStartDelay(FADE_DEFAULT_TIME); nextFragment.setSharedElementEnterTransition(enterTransitionSet); // 3. Enter Transition for New Fragment Fade enterFade = new Fade(); enterFade.setStartDelay(MOVE_DEFAULT_TIME + FADE_DEFAULT_TIME); enterFade.setDuration(FADE_DEFAULT_TIME); nextFragment.setEnterTransition(enterFade); View logo = ButterKnife.findById(this, R.id.fragment1_logo); fragmentTransaction.addSharedElement(logo, logo.getTransitionName()); fragmentTransaction.replace(R.id.fragment_container, nextFragment); fragmentTransaction.commitAllowingStateLoss(); }