【发布时间】:2015-09-24 11:25:21
【问题描述】:
我正在尝试为 RecyclerView 元素制作共享元素转换,使用图像作为共享元素。
除了共享元素转换之外,我还可以进行其他转换。
我的猜测是Transition.hide 和transition.Show 中存在问题。
其他,我被卡住了。请帮忙:)
这是处理过渡的方法
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 {
过渡文件夹文件名为 change_image_transform 并包含:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeTransform/>
<changeImageTransform/>
</transitionSet>
我也确实在船图像上使用了 android:transitionName="MyTransition"。
这里是添加到 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>
【问题讨论】:
标签: java android transitions