shared Element Transition Problem

  • Antworten:5
lampenlampen
  • Forum-Beiträge: 15

16.11.2016, 13:42:31 via Website

Hey,

ich habe ein Problem mit dem Übergang zwischen zwei Activities.
Ich habe in Activity A eine RecyclerView mit CardViews als Elemente und in jeder CardView ist ein Bild.
Bei Klick auf die CardView wird Activity B gestartet, in der das Bild der CardView größer dargestellt werden soll.
Dazu habe ich das Bild der CardView mit einem TransitionName "image" belegt (v.setTransitionName("Image")) und in der layout-Datei von Activity B der ImageView das Attribut android:transitionName="image" hinzugefügt.
Nun mache ich mit "makeSceneTransitionAnimation" einen Übergang zwischen den zwei ImageViews.
Das klappt auch, das Problem ist, wenn ich in Activity B den Back-Button klicke, verschwindet Activity B und im Hintergrund erscheint Activity A wieder, die ImageView von B bleibt jedoch im Vordergrund bis ich im Hintergrund Activity A wieder vollständig sehe.
Meine Frage nun, wie kann ich entweder hier auch einen Übergang zwischen den zwei ImageView einfügen oder wie bringe ich die ImageView B dazu in dem gleichen Moment zu verschwinden wie Activity B.

Vielen Dank schon mal im Voraus.

Grüße

Antworten
swa00
  • Forum-Beiträge: 3.704

16.11.2016, 13:48:38 via Website

Hallo Lampen,

danke für das Video - das war echt notwendig , damit man es versteht :-)

Du hast natürlich ein zeitliches Problem .

Wie wäre es denn , wenn du in Activity B onBackPressed überschreibst und darin erst dein "grosses" View
aus B tötest, bevor du weitermachst ?

P.S schöne Transition , kannst du ggf. hier die MoveParameter Posten ?

— geändert am 16.11.2016, 13:50:51

Liebe Grüße - Stefan
[ App - Entwicklung ]

lampenlampen

Antworten
lampenlampen
  • Forum-Beiträge: 15

16.11.2016, 17:08:19 via Website

Hey Stefan,

danke für deine Antwort.
Ich hab schon ein bischen versucht die onBackPressed() zu überschreiben, allerdings ohne Erfolg :(
Was meinst du denn mit töten?
Du weißt nicht zufällig, wie ich beim Beenden von Activity B die Backtransition bekomme oder progarmmieren kann?

Ich habe keine MoveParameter eingegeben; ich schätze das sind die Standardparameter.
ich habe den zwei ImageViews denselben transitionName gegeben und dann folgenden Aufruf um Activity B zu starten:

Intent intent = new Intent(...);
ActivityOptionsCombat Options = ActivityOptionsCombat.makeSceneTransitionAnimation("context", "View von der die Transition starten soll", "TransitionName");
startActivity(intent, Options.tobundle());

— geändert am 16.11.2016, 17:25:16

Antworten
swa00
  • Forum-Beiträge: 3.704

16.11.2016, 17:18:11 via Website

Hallo lampen ,

Jetzt wird es klarer , das ist keine Animation innerhalb von B , sondern das ist die Animation von B

Dann kannst du auch nix reissen, denn das macht das System.

Wenn du da was erreichen möchtest musst du ein separates AnimationsView in B setzen und bei backPressed dieses vorher erst löschen , bzw ausblenden.

— geändert am 16.11.2016, 17:30:13

Liebe Grüße - Stefan
[ App - Entwicklung ]

lampenlampen

Antworten
lampenlampen
  • Forum-Beiträge: 15

16.11.2016, 17:30:05 via Website

Hey,

des ist ja ein Scheiß.
Da geht die Animation so einfach, aber dann kann man des nicht benutzen, weil es danach scheiße aussieht.

Hast du vielleicht ein gutes Tutorial bzgl. Animationen zur Hand, was du mir empfehlen kannst?
Versuch mich grad bischen im Web einzulesen, aber da gibt's irgendwie nichts so richtig gutes.
Kann auch Englisch sein ;)

Antworten
swa00
  • Forum-Beiträge: 3.704

16.11.2016, 17:45:05 via Website

Hallo "Light" :-)

a) Na, englisch-kenntnisse wären bei einem englischen Syntax der Programmiersprache schon von Vorteil :-)
b) Das "Fertige" was du verwendet hast , ist ja auch eher rudimentär (trotzdem sah das gut aus)

c) Du baust dir eine Activity ( B) dann baust du dir da drin eine View und diese animierst du

http://www.vogella.com/tutorials/AndroidAnimation/article.html

— geändert am 16.11.2016, 22:44:28

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten