¿Cómo posponer la transición de ingreso de un Fragmento en Android Lollipop?
android-5.0-lollipop shared-element-transition (1)
En Android Lollipop, los métodos Activity#postponeEnterTransition()
y Activity#startPostponedEnterTransition()
dan a la actividad la capacidad de retrasar el inicio de la entrada y salida de las transiciones de elementos compartidos hasta que se carguen todos los datos. Estos funcionan muy bien para las transiciones de Activity
.
¿Hay alguna manera de lograr el mismo efecto cuando se utilizan las transiciones de Fragment
?
No hay un equivalente directo en Fragment Transitions porque Fragment utiliza FragmentTransaction y realmente no podemos posponer algo que se supone que ocurre en una transacción.
Para obtener el equivalente, puede agregar un Fragmento y ocultarlo en una transacción, luego, cuando el Fragmento esté listo, quite el Fragmento antiguo y muestre el Nuevo Fragmento en una transacción.
getFragmentManager().beginTransaction()
.add(R.id.container, fragment2)
.hide(fragment2)
.commit();
Más tarde, cuando el fragmento 2 está listo:
getFragmentManager().beginTransaction()
.addSharedElement(sharedElement, "name")
.remove(fragment1)
.show(fragment2)
.commit();