2016-07-22 11 views
5

Ich habe eine Aktivität mit einem Fragment A darin. Das Fragment A hat das verschachtelte Fragment B darin. Ich Schale B mit C folgenden Code:Android animierte verschachtelte Fragmente

  getChildFragmentManager() 
       .beginTransaction() 
       .setCustomAnimations(R.anim.move_left_in, R.anim.move_left_out,R.anim.move_right_in, R.anim.move_right_out) 
       .replace(R.id.container, fragmentC) 
       .addToBackStack("nested") 
       .commit(); 

danach Im

tut
 getChildFragmentManager().popBackStack(); 

was mich Fragment B. Danach bringt wieder schalte ich Fragment A mit dem Fragmente D unter Verwendung von Code

 getSupportFragmentManager() 
      .beginTransaction() 
      .setCustomAnimations(R.anim.move_up_in, R.anim.move_up_out, R.anim.move_down_in, R.anim.move_down_out) 
      .replace(R.id.fragment_holder, fragmentD) 
      .addToBackStack("fragments") 
      .commit(); 

und während diese Animation auf A-> D-Transaktion spielt, spielt das B Animation der Transaktion C-> B, und indem Backstack im im Erhalten des gleichen Ergebnisses, warum?

+0

Welche Unterstützung libs Version verwenden Sie? – azizbekian

+0

Ich bekomme nicht, was Sie wirklich wollen. Kannst du ein wenig über diesen Teil nachdenken, "und während diese Animation in der A-> D-Transaktion abgespielt wird, spielt das B die Animation der Transaktion C-> B, und indem du Backstack machst und das gleiche Ergebnis bekommst, warum?"? –

Antwort

-1

Sie das getChildFragmentManager nicht() verwenden,

Verwenden Unterstützung fragmnetManager bedeutet getSupportFragmentManager verwenden warum?

bcz verschachtelten Fragment

Ich hoffe, Ihr Problem mit dieser Lösung gelöst. Danke :)

+0

Warum sollte er Kind Fragment Manager nicht verwenden? – RadekJ

+0

Da ich dieses Problem auch während der Animation mit Fragmenten habe, ändere ich es einfach vom Child Manager zum Support Manager. Danach bekomme ich meine Ergebnisse, die ich möchte. –

+0

können Sie hier überprüfen https://developer.android.com/reference/android/app/FragmentTransaction.html#setCustomAnimations%28int,%20int,%20int,%20int%29 –

0

Wenn Sie Fragment A mit Fragment D. Schalter

Der Inhalt innerhalb Fragment A von seinem übergeordneten lösen und Transaktion A dann -> D erfolgt,

Da Sie bereits Animation gesetzt haben zu Ihren Fragmenten, Verzögerung aufgrund dieser Animation ist der Grund, Sie sehen, dass die Animation in B zuerst, dann A -> D Animation ausgelassen.