He revisado algunos tutoriales para la transacción animada entre fragmentos. He usado este método para la animación y funciona:
fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left,
android.R.anim.slide_out_right);
Pero quiero invertir esta animación: el fragmento antiguo se desliza hacia la izquierda y el nuevo fragmento se desliza hacia la derecha, pero ningún valor de R.anim
archivo parece ser útil para mi alcance.
¿Cómo puedo hacerlo?
override
key_code==back_key_press
en tu segundo fragmento.Respuestas:
ACTUALIZAR Para Android v19 + ver este enlace a través de @Sandra
Puedes crear tus propias animaciones. Coloque archivos XML de animación en
res > anim
enter_from_left.xml
enter_from_right.xml
exit_to_left.xml
exit_to_right.xml
puede cambiar la duración a un tiempo de animación corto
o tiempo de animación largo
USO (tenga en cuenta que el orden en el que llama a los métodos en la transacción es importante. Agregue la animación antes de llamar a .replace, .commit):
fuente
700
es un poco excesiva para este tipo de animaciones, en mi opinión. El marco Android tiene 3 preajustes para la sincronización:android:duration="@android:integer/config_longAnimTime"
,android:duration="@android:integer/config_mediumAnimTime"
yandroid:duration="@android:integer/config_shortAnimTime"
, lo que corresponde a 500, 400 y 200. Supongo que la unidad es milisegundos, pero no estoy seguro.Hay tres formas de animación de transacciones en fragmentos.
Transiciones
Animaciones personalizadas
También puede personalizar la animación mediante el método setCustomAnimations ():
slide_up.xml
slide_down.xml
Varias animaciones
Para más detalles puede visitar URL
Nota: - Puede verificar la animación de acuerdo con sus requisitos porque lo anterior puede tener problemas.
fuente
Tengo el mismo problema, utilicé una solución simple
1) crear slide_out_right.xml en la carpeta anim
2) crea slide_in_left.xml en la carpeta anim
3) simplemente usando la transacción de fragmentos setCustomeAnimations () con dos xml personalizados y dos xml predeterminados para la animación de la siguiente manera: -
fuente
slide_in_down.xml
slide_in_up.xml
slide_out_down.xml
slide_out_up.xml
dirección = abajo
dirección = arriba
fuente
Esta es otra solución que utilizo:
El uso de la clase. Digamos que tiene dos fragmentos (fragmentos de lista y detalles) como se muestra a continuación
Uso
Puede usar la función
CustomAnimator.reversePrevious();
para obtener la vista anterior cuando el usuario presionó hacia atrás.fuente