为了让共享元素过渡更加流畅,我需要推迟目标活动中的重度初始化。请参考以下代码:
getWindow().setSharedElementEnterTransition(enterTransition);
enterTransition.addListener(new Transition.TransitionListener() {
@Override
public void onTransitionEnd(Transition transition) {
init();
}
});
然而,如果此活动是从Deep link
或另一个没有共享元素的活动启动的,则转换永远不会开始,因此onTransitionEnd()
不会被调用,init()
将永远不会运行。在这种情况下,我应该在活动启动后立即调用init()
。
我如何知道转换将要运行?
编辑
如果共享元素过渡不可用,我还想运行另一个进入转换。因此,下面的答案建议使用postponeEnterTransition()
对我的情况不起作用。