为了让共享元素转换顺利运行,我需要在目标活动中推迟繁重的初始化.见下面的代码:
getWindow().setSharedElementEnterTransition(enterTransition); enterTransition.addListener(new Transition.TransitionListener() { @Override public void onTransitionEnd(Transition transition) { init(); } });
但是,如果此活动是从Deep link
另一个没有共享元素的活动开始的.过渡永远不会开始,因此onTransitionEnd()
永远不会被调用,init()
永远不会运行.在这种情况下,我应该init()
在活动开始后立即打电话.
我怎么知道过渡将会发生?
编辑
我还想在共享元素转换不可用时运行另一个输入转换.所以在下面回答建议使用postponeEnterTransition()
对我的情况不起作用.