活动与FLAG_ACTIVITY_SINGLE_TOP之间的转换

时间:2017-10-13 11:16:43

标签: android material-design android-transitions shared-element-transition

我使用ActivityOptions.makeSceneTransitionAnimation在活动之间进行转换。我以编程方式创建自定义Transitions,并使用window.enterTransitionwindow.exitTransition进行设置。 我的活动堆栈如下所示:

A (transition1) ---> B1 (transition2) ---> B2

现在我想从B2返回A transition1,就像我从B1返回一样。所以我希望用FLAG_ACTIVITY_SINGLE_TOP清除活动堆栈并将A放在前面。遗憾的是,B2的退出动画无效,活动A刚刚以默认动画启动。 我附加了监听器,看看exitTransition是否已启动,看起来它已经启动但是在一段时间后被取消了。另外,我尝试启动Activity A而不用标记只是为了检查我是否正确设置了转换,并且一切正常。

因此,当我使用FLAG_ACTIVITY_SINGLE_TOP时,似乎没有B2完成了活动exitTransition。有没有人遇到类似的问题?我知道,我可以在开始B1之前完成B2然后,而不是使用CLEAR_TOP启动A,我可以完成B2。但是,这非常不方便和肮脏,因为我必须手动管理输入,返回,重新输入等B1B2之间的转换,所以我想确保没有其他解决方案。

我还看到了overridePendingTransitions的解决方案。这些不适合,因为此方法只允许使用xml中定义的转换,但我有自定义转换,只能以编程方式设置。

0 个答案:

没有答案