java - studio - Android-Transiciones de elementos compartidos con actividad de llamada final()
transiciones material design android studio (4)
Estoy trabajando para hacer que una aplicación sea más material y estoy atascado en cómo implementar algunas transiciones de elementos compartidos. Tengo una actividad A que comienza con otra B y luego llama a finish () para eliminarla de la pila trasera. En mi caso, tengo un elemento que quiero compartir entre las dos actividades, pero una vez que se pasa de A a B, A ya no importa. Si no llamo a finish () después de startActivity (ctx, intent, bundle), la animación exit / enter funciona perfectamente. Sin embargo, si llamo a finalizar, hay un parpadeo realmente feo antes de que comience la animación.
¿Hay algo que estoy pasando por alto o simplemente no es posible hacer lo que estoy tratando de hacer?
Esto es quizás tarde pero tuve el mismo problema. Lo que funcionó para mí es:
supportFinishAfterTransition();
Esto está incluido en la biblioteca de soporte y funciona como encanto.
PD: no necesita llamar a finish()
cuando llama a supportFinishAfterTransition()
.
Pruebe el método finishAfterTransition () en 5.0 y superior, puede finalizar la actividad después de que se produzca la transición de salida.
Puede finalizar su actividad en la función onStop, si solo desea que esto suceda cuando realice la transición de A a B, cree un indicador y configúrelo después de llamar a startActivity (ctx, intent, bundle):
@Override
public void onStop() {
super.onStop();
if(mShouldFinish)
finish();
}
Asegúrese de que cuando haya terminado con la actividad B para llamar a finalice () y no a terminarAfterTranstion () ya que la actividad A ya no está allí
Después de terminar la actividad A, el elemento compartido en B puede colgarse en la pantalla si presiona Atrás. Para evitar esto, establezca transitionName en nulo en ActivityB.onEnterAnimationComplete
.
ACTUALIZAR
Manera mucho mejor y más simple.
ActivityCompat. finishAfterTransition(this);
<3 biblioteca de soporte.