我已经尝试了许多不同的变体,但无法使返回转换正常工作。
当我退出活动 B 时,图像转换回活动 A,但它被缩放直到消失,然后在消失后显示它应该显示的位置。
我已经尝试了以下和该组中其他变体的不同变体
活动A来自回收器视图中的点击侦听器。
Intent intent = new Intent(getActivity(), ApplyActivity.class);
ActivityOptionsCompat transitionActivityOptions;
transitionActivityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), imageView, getString(R.string.transition_image_details));
intent.putExtra(ApplyActivity.EXTRA_NAME, selected_launcher);
intent.putExtra(ApplyActivity.EXTRA_INSTALLED, mLaunchers.get(position).getInstalled());
getActivity().startActivity(intent, transitionActivityOptions.toBundle());
活动 A 布局
<ImageView
android:id="@+id/launcher_icon"
android:transitionName="@string/transition_image_details"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_centerHorizontal="true"
android:padding="@dimen/small_padding"
android:layout_alignParentTop="true" />
活动B
Transition transition = TransitionInflater.from(this).inflateTransition(R.transition.change_image_transform);
getWindow().setSharedElementReturnTransition(transition);
getWindow().setSharedElementEnterTransition(transition);
getWindow().setSharedElementExitTransition(transition);
我已经尝试了以下真/假getWindow().setSharedElementsUseOverlay(true);
活动 B 布局(在 AppBarLayout/CollapsingToolbarLayout 中)
<ImageView
android:id="@+id/backdrop"
android:transitionName="@string/transition_image_details"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="80dp"
android:paddingTop="30dp"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7" />
change_image_transform.xml
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeTransform />
<changeImageTransform />
</transitionSet>
我也尝试过在 values-v21/styles 中设置过渡.xml但没有运气。
我什至尝试从回收器查看过渡名称设置位置,但也没有运气。
这是该问题的视频。我放慢了过渡速度,以便更好地看到它
https://www.dropbox.com/s/gzli11ae3ebz95f/2016_04_19_20_33_29.mp4?dl=0
确保两个图像共享相同的scaleType
。
有关更多信息,请参阅此帖子:Android Glide 库无法使用共享元素过渡
您可以尝试在活动 B 中删除这些传输代码,我这样做了,效果很好。