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

时间:2017-04-28 14:40:42

标签: android android-transitions

我有一个小问题。

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

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

除了图像,

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

我该怎样防止这种情况?我想要正常的行为,比如我打电话给finishonBackPressed

迎接

2 个答案:

答案 0 :(得分:3)

我找到了解决方案。

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

答案 1 :(得分:2)

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

只需重写finishAfterTransition()。也许您的基类中应该有一个布尔值,所以它看起来像这样:

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