如何防止反向共享元素转换
How to prevent reverse shared element transition
我有点问题。
我有一个带列表的片段 A 和一个带列表的 activity B。
现在 A 和 B 有一个共同的图像,所以我设置了一个共享元素转换,它在从 A 到 B 的路上工作。
但我不想在按下后退按钮时进行反向转换。
所以我不调用 B supportFinishAfterTransition
而不是 finish
。但是现在有一些丑陋的动画:
B除图像外正常消失。图像一直停留在前景中,直到 A 在背景中可见,然后消失。
我该如何防止这种情况发生?我想要正常的行为,比如我会调用 finish
或 onBackPressed
.
问候
我找到了解决办法。
我玩了一下,如果你覆盖 onBackPressed()
并调用 finish()
而不是 super.onBackPressed()
,它有效。
刚刚偶然发现了这个问题,有一个更简洁的解决方案..
只需覆盖 finishAfterTransition()。也许你的基数 class 应该有一个布尔值,所以它看起来像这样:
final override fun finishAfterTransition() {
if (myShouldAllowReverseTransitionsBoolean) {
super.finishAfterTransition()
} else {
super.finish()
}
}
我有点问题。
我有一个带列表的片段 A 和一个带列表的 activity B。 现在 A 和 B 有一个共同的图像,所以我设置了一个共享元素转换,它在从 A 到 B 的路上工作。
但我不想在按下后退按钮时进行反向转换。
所以我不调用 B supportFinishAfterTransition
而不是 finish
。但是现在有一些丑陋的动画:
B除图像外正常消失。图像一直停留在前景中,直到 A 在背景中可见,然后消失。
我该如何防止这种情况发生?我想要正常的行为,比如我会调用 finish
或 onBackPressed
.
问候
我找到了解决办法。
我玩了一下,如果你覆盖 onBackPressed()
并调用 finish()
而不是 super.onBackPressed()
,它有效。
刚刚偶然发现了这个问题,有一个更简洁的解决方案..
只需覆盖 finishAfterTransition()。也许你的基数 class 应该有一个布尔值,所以它看起来像这样:
final override fun finishAfterTransition() {
if (myShouldAllowReverseTransitionsBoolean) {
super.finishAfterTransition()
} else {
super.finish()
}
}