介绍

我目前正在使用活动过渡和共享元素。



我知道的

我了解内容过渡是如何工作的。
他们在A-> B时按此顺序玩:


退出活动的过渡
B活动淡出的背景
在B活动上输入转换


然后去B-> A:


B活动的返回过渡
活动淡出的背景
重新进入活动的过渡


为了能够依次看到所有这些转换,必须将以下两个属性设置为false:


setAllowEnterTransitionOverlap
setAllowReturnTransitionOverlap




我的问题

现在开始玩共享元素过渡!

我注意到,无论配置如何,都不会播放Transition SharedElementExitTransition。

无论是什么,总是使用SharedElementEnterTransition。

到目前为止,我尝试了:


停用TransitionOverlap并使用长退出(内容)过渡
为SharedElement输入和退出转换设置两个不同的转换
完全停用SharedElementEnterTransition


在所有这些情况下,都不会使用ShareElementExitTransition!



我的问题


这是正常现象吗?
如果是,此过渡的意义何在?


预先感谢您的回答。

最佳答案

SharedElementExitTransition用于在将共享元素移动到被调用的Activity之前对共享元素执行某些操作。例如,您可能想举起它,然后将其移动到屏幕的中心,然后再调用“活动”。

重要的部分是在调用startActivity之后执行共享元素退出转换。因此,您必须在那时更改共享元素。本质上,您可以这样做:

startActivity(intent, activityOptionsBundleWithTransitions);
manipulateSharedElement();


然后,共享元素退出转换将执行,直到完成后才转移共享元素。共享元素退出转换很少使用。

10-04 23:12