Я делаю обзор рециркулятора для перехода между фрагментом видового экрана и переходом к общему элементу. Моя проблема заключается в том, что флэш-память возникает только при первом запуске viewpager.вот мой код:
on click of recyclerview item:
holder.iv.setTransitionName(MainActivity.position + "ZoomImage");
ImagePagerFragment productDetailFragment = new ImagePagerFragment();
getActive.getSupportFragmentManager()
.beginTransaction()
.setReorderingAllowed(true)
.addSharedElement(holder.iv, holder.iv.getTransitionName())
.replace(R.id.fragment, productDetailFragment)
.addToBackStack(null)
.commit();
В ImagePagerFragment, который имеет viewpager:
prepareSharedElementTransition();
postponeEnterTransition();
prepareSharedElementTransition ():
Transition transition =
TransitionInflater.from(getContext())
.inflateTransition(R.transition.image_shared_element_transition);
setSharedElementEnterTransition(transition);
setEnterSharedElementCallback(
new SharedElementCallback() {
@Override
public void onMapSharedElements(List<String> names, Map<String, View> sharedElements) {
Fragment currentFragment = (Fragment) viewPager.getAdapter()
.instantiateItem(viewPager, viewPager.getCurrentItem());
View view = currentFragment.getView();
if (view == null) {
return;
}
sharedElements.put(names.get(0), view.findViewById(R.id.image1));
}
});
ImagePagerAdapter - FragmentStatePagerAdapter, возвращающий ImageFragment, в ImageFragment:
Picasso.with(getActivity())
.load(url)
.into(ivZoom, new Callback() {
@Override
public void onSuccess() {
ivZoom.setTransitionName(MainActivity.position + "ZoomImage");
getParentFragment().startPostponedEnterTransition();
}
@Override
public void onError() {
ivZoom.setTransitionName(MainActivity.position + "ZoomImage");
getParentFragment().startPostponedEnterTransition();
}
});