【问题标题】:Shared element transition between fragments across activities not consistent跨活动的片段之间的共享元素转换不一致
【发布时间】:2016-11-18 09:18:36
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    我可能对这个答案有误,但请随意尝试:

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

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

    【讨论】:

      猜你喜欢
      • 2018-07-30
      • 2015-04-07
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 2015-09-03
      相关资源
      最近更新 更多