如何防止反向共享元素转换

How to prevent reverse shared element transition

我有点问题。

我有一个带列表的片段 A 和一个带列表的 activity B。 现在 A 和 B 有一个共同的图像,所以我设置了一个共享元素转换,它在从 A 到 B 的路上工作。

但我不想在按下后退按钮时进行反向转换。 所以我不调用 B supportFinishAfterTransition 而不是 finish。但是现在有一些丑陋的动画:

B除图像外正常消失。图像一直停留在前景中,直到 A 在背景中可见,然后消失。

我该如何防止这种情况发生?我想要正常的行为,比如我会调用 finishonBackPressed.

问候

我找到了解决办法。

我玩了一下,如果你覆盖 onBackPressed() 并调用 finish() 而不是 super.onBackPressed(),它有效。

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

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

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