Damit der Übergang von gemeinsam genutzten Elementen reibungslos funktioniert, muss ich die schwere Initialisierung auf meine Zielaktivität verschieben. Siehe Code unten:Wie können wir wissen, dass der Übergang von Activity Shared Elements ausgeführt wird?
getWindow().setSharedElementEnterTransition(enterTransition);
enterTransition.addListener(new Transition.TransitionListener() {
@Override
public void onTransitionEnd(Transition transition) {
init();
}
});
Wenn jedoch diese Aktivität von Deep link
oder einem anderen Aktivität gestartet wird, die nicht über Element geteilt. Der Übergang startet nie, daher wird onTransitionEnd()
niemals aufgerufen und init()
wird nie ausgeführt. In diesem Fall sollte ich sofort nach dem Start der Aktivität init()
anrufen.
Wie kann ich wissen, dass der Übergang ausgeführt wird?
EDIT Ich möchte auch nicht eine andere eingeben Übergang, wenn das gemeinsame Element Übergang laufen zur Verfügung steht. Also antworten Sie unten, dass die Verwendung von postponeEnterTransition()
nicht für meinen Fall funktioniert.