11

tengo 2 actividades, y quiero crear una transición animada entre las dos actividades, de modo que las vistas de ambas actividades se muestren como si la segunda actividad empujara la primera actividad hacia arriba. en mi primera actividad que utilizo:overridePendingTransition muestra la segunda actividad demasiado rápido

Intent iSecondActivity = new Intent(FirstActivity.this,SecondActivity.class); 
FirstActivity.this.startActivity(iSecondActivity); 
FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2); 

y mi slide.xml parece:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator"> 
    <translate 
     android:interpolator="@android:anim/decelerate_interpolator" 
     android:fromYDelta="0" 
     android:toYDelta="-100%p" 
     android:duration="2000" 
    /> 
</set> 

y mi slide2.xml parece:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator"> 
    <translate 
     android:interpolator="@android:anim/decelerate_interpolator" 
     android:fromYDelta="100%p" 
     android:toYDelta="0" 
     android:duration="2000" 
    /> 
</set> 

Sin embargo, el problema es que cuando se llama a "startActivity", la vista de la segunda actividad ya está representada mientras la transición comienza a deslizarse. Me gustaría ver que la vista de la primera actividad se deslice hacia arriba ... pero en su lugar veo que la vista de la segunda actividad (representada en la vista de la primera actividad) se desliza hacia arriba.

el segundo problema es que veo que la vista de reemplazo es la vista de la primera actividad. me gustaría que la vista de reemplazo sea la vista de la segunda actividad que está empujando hacia arriba.

Es difícil de explicar, así que por favor avíseme si puedo explicar algo con más detalle. Disculpas por cualquier confusión, y gracias por leer esto.

P.S. Estoy usando textviews ... ¿supongo que se renderiza demasiado rápido? También estoy usando Motorola Razr, no es que importe.

Respuesta

9

No importa, eso fue un error tonto - no entendí lo que significaba la documentación por "ingresar animación" vs "salir de la animación". i necesidad de intercambiar las XMLs cambiando:

FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2); 

en

FirstActivity.this.overridePendingTransition(R.anim.slide2, R.anim.slide); 
+0

¿hay alguna manera de usar Animator en su lugar? –

+0

también me enfrenté al mismo problema, pero resuelto por su respuesta, pero es muy extraño. De todos modos, gracias –

6

sólo tiene que añadir de inmediato a su slide2.xml:

android:startOffset="2000" 

esta manera la animación para la segunda actividad sólo se iniciará inmediatamente después de su primera animación de la actividad se ha completado.

+0

Lo sentimos, no estaba claro en mi pregunta. Pensé que el problema era ver la representación demasiado rápido. pero resulta que simplemente no entendí lo que querían decir con los parámetros de "entrada de animación" en la llamada para "anular la transición de envío". –

+0

sin embargo, no sabía que puede retrasar la animación. eso es bastante útil. +1 –

Cuestiones relacionadas