Hacer que la nueva actividad aparezca detrás de la anterior durante la transición

Lo que bash lograr es anular la animación de la actividad de inicio.

La animación debe dar la impresión de que la actividad anterior se encuentra en la parte superior de la nueva actividad, y luego se desliza hacia abajo y hacia afuera de la pantalla para revelar la nueva actividad. He intentado varias formas, como usar overridePendingTransition(startAnim, exitAnim) Pero el problema es que ambos animan en la misma línea de tiempo. Así que overridePendingTransition(R.anim.hold, R.anim.exit_slide_down); Nunca se ve la animación de salida porque la nueva actividad está en la parte superior. ¿Se puede lograr esto usando el marco?

enter image description here

En realidad, he encontrado una propiedad llamada android:zAdjustment en los archivos de animación.

Si pongo android:zAdjustment="bottom" en hold.xml (pantalla 2) y android:zAdjustment="top" en push_down_out.xml (pantalla 1), entonces puedo obtener el efecto deseado.

Esto soluciona el problema del orden z (supuse que era un problema con los tiempos de animación, así que estaba ladrando el árbol equivocado).

John

He estado intentando resolver tu solución en un proyecto de muestra y lo he conseguido trabajando con este código:

Llame a la animación con:

 startActivity(new Intent(this, Activity2.class)); overridePendingTransition(R.anim.push_down_in,R.anim.push_down_out); 

R.anim.push_down_in:

     

R.anim.push_down_out:

     

La solución que funciona para mí:

R.anim.exit_slide_down

    

…y entonces

 Intent intent = new Intent(activity, SecondActivity.class); startActivity(intent); activity.overridePendingTransition(0, R.anim.exit_slide_down);