transiciones studio pantallas navegacion fragments example entre diseƱo developer activity activities java android android-5.0-lollipop activity-finish shared-element-transition

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.