I am trying to make Share Element Transition for RecyclerView element , using the image as the share element.
I am able to make other transition work except the Share Element Transition.
my guess is that the problem is on in Transition.hide and transition.Show.
other that that i am stuck. please help :)
Here is the method that handles the transition
public void goToProduct(ProductItem current) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Transition changeTransform = TransitionInflater.from(this).
inflateTransition(R.transition.change_image_transform);
Transition explodeTransform = TransitionInflater.from(this).
inflateTransition(android.R.transition.explode);
productListFragment.setSharedElementReturnTransition(changeTransform);
productListFragment.setExitTransition(explodeTransform);
productPageFragment.setSharedElementEnterTransition(changeTransform);
productPageFragment.setEnterTransition(explodeTransform);
isProductPageOpenedFromCart = false;
isProductPageOpenedFromList = false;
ImageView listImage = (ImageView) findViewById(R.id.listImg1);
ImageView pageImage = (ImageView) findViewById(R.id.pageImg);
FragmentTransaction transaction = manager.beginTransaction();
transaction.hide(productListFragment)
.addToBackStack("transaction")
.addSharedElement(listImage, "MyTransition");
if (isCartOpen) {
CartFragment cartFragment = (CartFragment) manager.findFragmentByTag(CART_FRAGMENT_TAG);
transaction.remove(cartFragment);
isCartOpen = false;
isProductPageOpenedFromCart = true;
} else {
isProductPageOpenedFromList = true;
}
productPageFragment.setProduct(current);
transaction.show(productPageFragment).addToBackStack("transaction")
.addSharedElement(pageImage, "MyTransition");;
transaction.commit();
}
else {
the transition folder file is named change_image_transform and contains:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeTransform/>
<changeImageTransform/>
</transitionSet>
I also did use android:transitionName="MyTransition" on boath images.
And here are lines of code added to style.xml
<item name="android:windowContentTransitions">true</item>
<item name="android:windowEnterTransition">@transition/change_image_transform</item>
<item name="android:windowExitTransition">@transition/change_image_transform</item>
<item name="android:windowSharedElementEnterTransition">@transition/change_image_transform</item>
<item name="android:windowSharedElementExitTransition">@transition/change_image_transform</item>