Ответ 1
Вы пытались связать прослушиватель анимации с общим представлением элементов внутри onMapSharedElements
? ViewCompat.animate(view)
предоставит вам либо новый, либо кешированный ViewPropertyAnimator(Compat)
, а затем привязка прослушивателя анимации должна быть тривиальной. Я даже не пробовал.
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);
}
});