Sto cercando di ottenere il seguente effetto utilizzando FragmentTransaction.setCustomAnimations.Animazione FrammentTransaction per scorrere sopra
- frammento A mostra
- Sostituire frammento A con frammento B. frammento A deve rimanere visibile durante la sostituzione. Il frammento B dovrebbe entrare da destra. Il frammento B dovrebbe scorrere in OVER THE TOP del frammento A.
Non ho problemi a ottenere la diapositiva nell'impostazione dell'animazione. Il mio problema è che non riesco a capire come rendere Framment A rimanere dov'è ed essere UNDER Fragment B mentre la diapositiva in animazione è in esecuzione. A prescindere da quello che faccio, sembra che il frammento A sia al top.
Come posso ottenere questo risultato?
ecco il codice FragmentTransaction:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_right, R.anim.nothing, R.anim.nothing,
R.anim.slide_out_right);
ft.replace(R.id.fragment_content, fragment, name);
ft.addToBackStack(name);
ft.commit();
Come potete vedere ho definito un'animazione R.anim.nothing per l'animazione "out", perché io in realtà non voglio frammento A fare altro di rimanere dove è durante la transazione.
Qui ci sono le risorse di animazione:
slide_in_right.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0"
android:zAdjustment="top" />
nothing.xml
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:fromAlpha="1.0"
android:toAlpha="1.0"
android:zAdjustment="bottom" />
Ho archiviato un bug report perché l'ordinamento Z corrente è semplicemente sbagliato. https://code.google.com/p/android/issues/detail?id=163384&thanks=163384&ts=1428443402 – sbaar