如何防止反向共享元素过渡

lam*_*pen 5 android android-transitions

我有个小问题。

我有一个带列表的片段A和一个带列表的活动B。现在,A和B具有一个共同的图像,因此我设置了一个共享元素过渡,并且它在从A到B的途中起作用。

但是,如果我按下“后退”按钮,我不想进行反向转换。所以我不叫B supportFinishAfterTransition代替finish。但是现在有一些丑陋的动画:

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

我该如何预防?我想要正常的行为,例如是否致电finishonBackPressed

招呼

guy*_*y_m 6

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

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

final override fun finishAfterTransition() {
    if (myShouldAllowReverseTransitionsBoolean) {
        super.finishAfterTransition()
    } else {
        super.finish()
    }
}
Run Code Online (Sandbox Code Playgroud)


lam*_*pen 5

我找到了解决方案。

我玩了一会儿,如果您重写onBackPressed()finish()不是致电super.onBackPressed(),它会起作用。