【问题标题】:How to prevent reverse shared element transition如何防止反向共享元素转换
【发布时间】:2017-04-28 14:40:42
【问题描述】:

我有一个小问题。

我有一个带有列表的片段 A 和一个带有列表的活动 B。 现在 A 和 B 有一个共同的图像,所以我设置了一个共享元素转换,它在从 A 到 B 的过程中起作用。

但是如果我按下后退按钮,我不想进行反向转换。 所以我不打电话给 B supportFinishAfterTransition 而不是 finish。但是现在有一些丑陋的动画:

B 正常消失,除了图像。图像保持在前景中,直到 A 在背景中可见,然后消失。

如何防止这种情况发生?我想要正常的行为,比如我会打电话给finishonBackPressed

问候

【问题讨论】:

    标签: android android-transitions


    【解决方案1】:

    我找到了解决办法。

    我玩了一会儿,如果你覆盖 onBackPressed() 并调用finish() 而不是super.onBackPressed(),它可以工作。

    【讨论】:

    • supportLib 27.1.1,我必须使用 finish() 来禁用返回时共享元素转换并重新进入 A
    • 嘿,看看我的回答。覆盖 finishAfterTransition() 更干净
    【解决方案2】:

    偶然发现了这个问题,并且有一个更清洁的解决方案..

    只需覆盖finishAfterTransition()。你的基类中应该有一个布尔值,所以它看起来像这样:

    final override fun finishAfterTransition() {
        if (myShouldAllowReverseTransitionsBoolean) {
            super.finishAfterTransition()
        } else {
            super.finish()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多