3

Ich habe zwei Aktivitäten A1 und A2. A1 hat ein Fragment F1 und A2 hat ein Fragment F2. Wenn der Benutzer auf das Fragment F1 klickt, ruft er die Aktivität A2 auf, in der das Fragment F2 standardmäßig geladen ist. Das ist der Fluss. Jetzt habe ich eine gemeinsame Sicht zwischen den Fragmenten f1 und f2. Ich folgte this link, um den Übergang des gemeinsam genutzten Elements zu implementieren, und es funktioniert, aber nur manchmal. Der Übergang von gemeinsam genutzten Elementen über Fragmente hinweg ist nicht konsistent. Der Rückkehrübergang erfolgt wie erwartet, aber der Eintrittsübergang funktioniert nicht immer.Gemeinsame Elementübergang zwischen Fragmenten über Aktivitäten nicht konsistent

Wohin gehe ich falsch? Wo sollte ich setSharedElementEnterTransition() und setSharedElementReturnTransition() einstellen?

Antwort

0

kann ich mit dieser Antwort falsch sein, aber fühlen Sie sich frei, es zu versuchen:

Meine Hypothese ist, dass Sie die setSharedElementEnterTransition() und die setSharedElementReturnTransition() auf der onCreateView Methode setzen dies in einigen Fällen in Ordnung ist, aber wenn man die folgen vollständige Aktivität Lebenszyklus (you can check it here) Sie werden feststellen, dass in einigen Fällen, zum Beispiel: gleich nachdem Sie A1 pausiert oder stoppt Ihr Fragment1 Code wird von onStart oder onResume auf Ihrem Fragment und nicht von der onCreateView ausgeführt, wie Sie wahrscheinlich erwarten. So wird setSharedElementEnterTransition() nicht ausgeführt.

Aus diesem Grund denke ich, dass die Rückkehr Übergang immer funktioniert, weil aufgerufen wird, wenn die onStop-Methode aufgerufen wird. Das Problem hierbei ist, dass ein shareElement-Übergang in diesem Fall etwas komplex ist, weil Sie 4 Aktivitätslebenszyklen mischen. Ich muss etwas darüber recherchieren, aber ich denke, das könnte der Grund sein. Ich hoffe es hilft.