不同活动的片段之间的共享元素转换

时间:2017-08-11 11:04:23

标签: android android-fragments android-activity android-animation shared-element-transition

我正在尝试实现位于不同活动的不同片段下的两个 FixedAspectImageView 之间的共享元素转换。目的地也在 NestedScollView 下 发生的一切只是 Fragment1 的闪烁,只是轻微转换,而不是在Activity2中加载 Fragment2

由于元素位于不同活动的片段下,因此尝试在创建Activity2时使用 postponeEnterTransition(),并在Fragment2的onCreateView中使用 startPostponedEnterTransition()

OriginLayout:
<CardView>
   <LinearLayout>
       <FrameLayout>
           <FixedAspectImageView>
              transitionName:"image"


DestinationLayout:
<FrameLayout>
   <NestedScrollView>
       <LinearLayout>
           <FrameLayout>
               <FixedAspectImageView>
                  transitionName:"image"

1 个答案:

答案 0 :(得分:2)

您过早地执行startPostponedEnterTransition():在onCreateView上,您的视图尚未创建和布局。它不在onViewCreated()中,在onCreateView()之后立即调用。

相反,您必须等到使用ViewTreeObserver approach或普通view.post(Runnable)布局视图,然后才能执行startPostponedEnterTransition()