Durch Ausführen einer einfachen Folie auf der linken Seite der Animation für einkommendes und vorhandenes Fragment wird der Effekt des eintretenden Fragments erzeugt, das leicht mit dem Ausgangsfragment überlappt. Dies führt mich zu der Annahme, dass beide Transitionen nicht gleichzeitig ausgeführt werden. Irgendwelche Anhaltspunkte oder Bestätigung für dieses Verhalten?Fragment Eingabe- und Exit-Übergänge werden nicht gleichzeitig ausgeführt.
Der gewünschte Effekt ist, die Fragmente gleichzeitig ohne Überlappung nach links zu verschieben.
der Code:
Fragment current = ...;
Fragment fragment = ...;
Transition slideIn = TransitionInflater.from(this)
.inflateTransition(R.transition.fragment_indicator_enter)
.setDuration(300)
.setInterpolator(new LinearInterpolator());
fragment.setEnterTransition(slideIn);
currentFragment.setExitTransition(TransitionInflater.from(this)
.inflateTransition(R.transition.fragment_indicator_exit)
.setDuration(300)
.setInterpolator(new LinearInterpolator()));
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, fragment)
.addToBackStack(null)
.commit();
Die einzige Lösung von weiß Es ist ein setStartDelay (30) für den eintretenden Übergang zu addieren. Aber komische Sache, ich habe verschiedene Übergänge für verschiedene Fragmente und die Startverzögerung muss anders sein, um den Effekt zu erzeugen, dass beide Fragmente gleichzeitig nach links gleiten.
Danke für den Vorschlag, aber das ist in meinem Fall nicht gültig. Ich möchte Inhaltsübergänge (lollipop api) verwenden, was nicht genau dasselbe ist. Ich verwende benutzerdefinierte Übergänge, die unterschiedliche Effekte auf verschiedene Zielansichten anwenden. – juanmeanwhile