我正在 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);
           }
      });

10-08 15:32