I am working with Shared Element Transitions
between activities. The transition is working fine but I want to know when the shared element transition ends so that I can show other things.
I tried using onSharedElementEnd
in SharedElementCallback
in the activity I am transition to but that gets called before the transition starts.
is there another callback i can listen for?
Did you try to bind animation listener to the shared element view inside onMapSharedElements
? ViewCompat.animate(view)
will give you either a new or cached ViewPropertyAnimator(Compat)
and then binding the animation listener should be trivial. I haven't tried it, though.
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);
}
});
}
}
});
What about adding Transition.Listener
to the shared element transition?
Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition();
sharedElementEnterTransition.addListener(new TransitionListenerAdapter() {
@Override
public void onTransitionEnd(android.support.transition.Transition transition) {
super.onTransitionEnd(transition);
}
});