跨活动的片段之间的共享元素转换不一致

时间:2016-07-15 08:30:06

标签: android android-fragments android-5.0-lollipop shared-element-transition

我有两个活动A1和A2。 A1具有片段F1,A2具有片段F2。当用户点击片段F1时,它会调用Activity A2,默认情况下会加载片段F2。这就是流程。现在我在片段f1和f2之间有一个共享视图。我跟着this link实现了共享元素转换,它可以工作,但有时只是。跨片段的共享元素转换不一致。返回转换按预期发生,但输入转换并不总是有效。

我哪里错了?我应该在哪里设置setSharedElementEnterTransition()setSharedElementReturnTransition()

1 个答案:

答案 0 :(得分:0)

我对这个答案错了​​,但可以随意尝试:

我的假设是您在setSharedElementEnterTransition()方法上设置setSharedElementReturnTransition()onCreateView在某些情况下这是正常的,但如果您遵循完整的活动生命周期{{3}你会注意到在某些情况下,例如:在A1暂停或停止后,你的Fragment1代码将从你片段上的onStartonResume执行,而不是从onCreateView执行正如你所料。所以你的setSharedElementEnterTransition()没有被执行。

由于这个原因,我认为返回转换始终有效,因为在调用onStop方法时会调用它。这里的问题是,在这种情况下,shareElement转换有点复杂,因为您混合了4个活动生命周期。我必须对此进行一些研究,但我认为这可能是原因。希望它有所帮助。