如何知道何时共享元素转换结束

我正在使用活动之间的Shared Element Transitions 。 转换工作正常,但我想知道什么时候共享元素转换结束,以便我可以显示其他的东西。

我尝试在我正在转换的活动中的SharedElementCallback中使用onSharedElementEnd ,但在转换开始之前被调用。

有另一个callback,我可以听吗?

Solutions Collecting From Web of "如何知道何时共享元素转换结束"

您是否尝试将animation侦听器绑定到onMapSharedElements的共享元素视图? ViewCompat.animate(view)将给你一个新的或caching的ViewPropertyAnimator(Compat) ,然后绑定animation侦听器应该是微不足道的。 虽然我没有尝试过。

 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); } }); 

请尝试对您的活动进行onEnterAnimationComplete()callback。

我敢打赌,这正是你正在寻找的东西。

这是我在片段中所做的:

 Transition sharedElementEnterTransition = getActivity().getWindow().getSharedElementEnterTransition(); sharedElementEnterTransition.addListener(new Transition.TransitionListener() { @Override public void onTransitionStart(Transition transition) { } @Override public void onTransitionEnd(Transition transition) { } @Override public void onTransitionCancel(Transition transition) { } @Override public void onTransitionPause(Transition transition) { } @Override public void onTransitionResume(Transition transition) { } });