0

shared element transition does not working in fragments when doing FragmentTransaction.add() with appcompat latest version while working fine with replace(). When I downgrade appcompat to version v7:23.1 Its working It's working. I could find the issue is related to It's appcompact supported version but I could not find any solution yet.

The code I am using for transition is

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

        // set transitions
        startFragement.setSharedElementReturnTransition(TransitionInflater.from(
                activity).inflateTransition(R.transition.change_image_trans));
        startFragement.setExitTransition(TransitionInflater.from(
                activity).inflateTransition(android.R.transition.fade));

        endFragment.setSharedElementEnterTransition(TransitionInflater.from(
                activity).inflateTransition(R.transition.change_image_trans));
        endFragment.setEnterTransition(TransitionInflater.from(
                activity).inflateTransition(android.R.transition.fade));

        // send bunddle string  of transition_name in endfragment
        /*Bundle bundle = new Bundle();
        bundle.putString(GistConstants.TRANSITION_NAME, transition_name);
        endFragment.setArguments(bundle);*/

        FragmentTransaction fragmentTransaction =  ((AppCompatActivity)activity).getSupportFragmentManager().beginTransaction();

        Fragment currentFragment = ((FragmentActivity)activity).getSupportFragmentManager().findFragmentById(R.id.main_content);

        if(currentFragment!= null) {

            fragmentTransaction.hide(currentFragment);
        }

        if(isAddToStack){
            fragmentTransaction.addToBackStack(endFragment.getClass().getName());
        }

        fragmentTransaction.addSharedElement(transitionImageView, transition_name);

        fragmentTransaction.add(R.id.main_content, endFragment, endFragment.getClass().getName());
        //fragmentTransaction.add(contentId, endFragment,endFragment.getClass().getName());
      //  fragmentTransaction.replace(R.id.main_content, endFragment);

        fragmentTransaction.commitAllowingStateLoss();

    } else {

        switchFragmentAdd(activity, endFragment, isAddToStack, isAnimate);
    }
Nooruddin Lakhani
  • 7,507
  • 2
  • 19
  • 39

1 Answers1

0

It works in v7:25.1.1 but the Return transition doesn't work :

startFragement.setSharedElementReturnTransition(TransitionInflater.from(
                activity).inflateTransition(R.transition.change_image_trans)
Akshay Mahajan
  • 2,064
  • 1
  • 17
  • 20