-7 down vote favorite
When switching from the grid in the viewPager, the animation works correctly, but when going in the opposite direction, only the Fade Fade animation works, what can this be connected with? Here is my code for the transition in the ViewPager
class ConnectToSlider implements OnClickHolder{ @Override public void openSlider(int position,View v) { Log.d(TAG, "openSlider: GO FRAGMENT"); ImageView imageView = v.findViewById(R.id.cardImage); imageView.setTransitionName(String.valueOf(Images.resInts.get(position))); SliderFragment slider = new SliderFragment(); ((TransitionSet) MainActivity.getCurrentFragment().getExitTransition()).excludeTarget(v, true); Log.d(TAG, "TRANSITION NAME: " + v.getTransitionName()); Log.d(TAG, "VIEW: " + v); Transition transition = TransitionInflater.from(getContext()) .inflateTransition(R.transition.shared_transition); slider.setSharedElementEnterTransition(transition); FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager() .beginTransaction() .setReorderingAllowed(true) .addToBackStack(null) .addSharedElement(imageView,imageView.getTransitionName()) .replace(R.id.fragmentContainer, slider); fragmentTransaction.commit(); } } Below is the code of the ViewPagerFragment itself.
public class SliderFragment extends Fragment { private static final String TAG = "SliderFragment"; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Log.d(TAG, "onCreateView: "); ViewPager pager = (ViewPager) inflater.inflate(R.layout.fragment_slider,container,false); AdapterSliderPager adapter = new AdapterSliderPager(this); pager.setAdapter(adapter); pager.setCurrentItem(MainActivity.currentFragmentNumber); // prepareTransition(); // postponeEnterTransition(); if (savedInstanceState == null) { Log.d(TAG, "INSTANSE STATE NULL, START POSTPONE ENTER TRANSITION"); postponeEnterTransition(); } return pager; } and the code of the nested fragment that the ViewPager generates
public class BigFotoFragment extends Fragment { private int imageUrl; public int getImageUrl() {return imageUrl;} public void setImageUrl(int imageUrl) {this.imageUrl = imageUrl;} private static final String TAG = "BigFotoFragment"; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Log.d(TAG, "onCreateView: "); View view = inflater.inflate(R.layout.fragment_big_foto,container,false); ImageView imageView = view.findViewById(R.id.bigPhotoContainer); imageView.setTransitionName(String.valueOf(imageUrl)); imageView.setImageResource(imageUrl); getParentFragment().startPostponedEnterTransition(); Log.d(TAG, "TRANSITION NAME: " + imageView.getTransitionName()); return view; }