【发布时间】:2017-10-24 23:47:57
【问题描述】:
我有一个带有三个片段的视图寻呼机活动。我开始了另一个顶部片段,其中包含带有片段的视图寻呼机。一切都很好,我成功地做到了这一切。但是当我使用 addSharedElement 从片段到片段的共享过渡时,根本没有动画发生。我用新的顶部片段替换片段,如下所示:
View transitionView = view.findViewById(R.id.photo_image_view);
fragmentManager
.beginTransaction()
.replace(R.id.fragment_container, fragment)
.addToBackStack(null)
.addSharedElement(transitionView, ViewCompat.getTransitionName(transitionView))
.commit();
在我的下一个片段 onCreate 我做了:
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getActivity() != null) {
getActivity().supportPostponeEnterTransition();
}
}
然后在 onCreateView 我用片段实现另一个视图分页器。实现视图寻呼机后,我想展示的片段是:
desiredFragmentToShow.setSharedElementEnterTransition(TransitionInflater.from(
getActivity()).inflateTransition(R.transition.change_image_trans));
desiredFragmentToShow.setEnterTransition(TransitionInflater.from(
getActivity()).inflateTransition(android.R.transition.fade));
在 onViewCreated 中的 desiredFragmentToShow 中我做了:
activity.supportStartPostponedEnterTransition();
但根本没有动画。如果有人有想法,请提供帮助。
【问题讨论】:
-
那么如果你在 Fragment 之间使用共享元素,你为什么要让 Activity 参与其中呢?例如你打电话给
getActivity().supportPostponeEnterTransition();应该是postponeEnterTransition();等等。 -
@Mark Keen 我做了'postponeEnterTransition();'在视图寻呼机的下一个容器片段的“onCreate()”和“startPostponedEnterTransition();”中在视图寻呼机片段中,视图寻呼机片段中的静止图像视图根本没有动画。
-
@WakilAhmad 你成功解决了这个问题吗?
-
@Jocky 还没有
标签: android android-viewpager fragment transition shared