我正在 Activity 之间使用Shared Element Transitions
。过渡工作正常,但是我想知道共享元素过渡何时结束,以便我可以展示其他内容。
我在过渡到的 Activity 中尝试在onSharedElementEnd
中使用SharedElementCallback
,但是在过渡开始之前被调用。
我可以听另一个回调吗?
最佳答案
您是否尝试将动画监听器绑定(bind)到onMapSharedElements
内的共享元素 View ? ViewCompat.animate(view)
将为您提供新的或缓存的ViewPropertyAnimator(Compat)
,然后绑定(bind)动画监听器应该很简单。我还没有尝试过。
setEnterSharedElementCallback(new SharedElementCallback() {
@Override
public void onMapSharedElements(List<String> names, Map<String, View> sharedElements) {
super.onMapSharedElements(names, sharedElements);
View keySharedElementView = sharedElements.get("keySharedElement");
if(keySharedElementView != null){
ViewCompat.animate(keySharedElementView).setListener(new ViewPropertyAnimatorListenerAdapter(){
@Override
public void onAnimationEnd(View view) {
super.onAnimationEnd(view);
}
});
}
}
});
将
Transition.Listener
添加到共享元素过渡怎么样? Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition();
sharedElementEnterTransition.addListener(new TransitionListenerAdapter() {
@Override
public void onTransitionEnd(android.support.transition.Transition transition) {
super.onTransitionEnd(transition);
}
});