从片段退出到包含 Viewpager 的 Activity 时,共享元素转换不起作用
Shared Element Transitions not working when exit from fragment to Activity containing Viewpager
我在 Viewpager 的片段内有一个 RecyclerView
,并且共享元素从 RecyclerView
中的一个项目到包含一个片段的 DetailActivity
。我正在 DetailActivity
内设置过渡,用于片段的进入和退出。
public static void sharedTransitionReceiver(Activity activity, Fragment fragment) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
activity.getWindow().getEnterTransition().setDuration(500);
Slide slideTransition = new Slide(Gravity.START);
slideTransition.setDuration(500);
fragment.setReenterTransition(slideTransition);
fragment.setExitTransition(slideTransition);
fragment.setSharedElementEnterTransition(new ChangeBounds());
}
}
它工作得很好,但是当我导航回上一个包含 Viewpager 的 activity 时,退出动画不起作用,并且项目不会动画回到其原始位置。
经过4个小时的努力,我无法想象答案会这么简单。我在从堆栈中弹出每个片段后调用 finish()
而不是我必须使用 supportFinishAfterTransition();
.
我在 Viewpager 的片段内有一个 RecyclerView
,并且共享元素从 RecyclerView
中的一个项目到包含一个片段的 DetailActivity
。我正在 DetailActivity
内设置过渡,用于片段的进入和退出。
public static void sharedTransitionReceiver(Activity activity, Fragment fragment) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
activity.getWindow().getEnterTransition().setDuration(500);
Slide slideTransition = new Slide(Gravity.START);
slideTransition.setDuration(500);
fragment.setReenterTransition(slideTransition);
fragment.setExitTransition(slideTransition);
fragment.setSharedElementEnterTransition(new ChangeBounds());
}
}
它工作得很好,但是当我导航回上一个包含 Viewpager 的 activity 时,退出动画不起作用,并且项目不会动画回到其原始位置。
经过4个小时的努力,我无法想象答案会这么简单。我在从堆栈中弹出每个片段后调用 finish()
而不是我必须使用 supportFinishAfterTransition();
.