Desactivar la animación de la transacción de fragmentos después de haberla confirmado
Tengo un pequeño fragmento de navegación poco común, porque quiero que la aplicación responda. Debido a que uso casi sólo mostrar / ocultar métodos con fragmentos.
Siempre que quiera navegar a otro fragmento y volver con la tecla de la parte posterior, agrego esta transacción al backstack. Con eso, también establezco la animación de transición a esa transacción, de modo que cuando un usuario presiona hacia atrás, muestra una animación de reversión (el efecto de popBackStackImmiediate ()), cuando el usuario va al fragmento anterior.
- Cómo saber cuando Fragmento se vuelve invisible
- Fragmento dentro de ViewPager devolver null en getView ()
- Cargar imagen desde la cámara a ImageView en un fragmento
- OptionsMenu de Fragmentos anidados dentro de ViewPager
- Implementación de DatePicker en Fragmento
Añado estas animaciones por:
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
Vamos a llamar A -> B -> A la navegación. Así que cuando A se mueve a B, se muestra una animación de apertura, y luego cuando regresamos a A, se muestra una animación de inversión.
Sin embargo, el problema surge, cuando tengo una situación en la que necesito ir de A a B añadiendo esta transacción a la pila trasera (para poder volver a A con el botón Atrás) y luego de B a C (sin agregar esta transacción a Pila trasera), y de C a A al presionar el botón Atrás. El problema en este escenario es que quiero que el usuario se traiga immidietly a un fragmento al presionar el botón de nuevo en ese fragmento C. Sin embargo, debido a que había animación añadida a la transacción de A a B, y esa transacción se agregó a la pila trasera, cuando el usuario presiona el botón de retorno en el fragmento C, se muestra la transacción de inversión A-> B (en efecto, el fragmento B parpadea Por una fracción de segundo en una pantalla, antes de que aparezca el fragmento A).
Todo funcionaría maravillosamente si podía conseguir al objeto de la transacción en la transacción A-> B y deshabilitar esa animación de la transición. Sin embargo, parece que esta operación no tiene efecto después de que se haya realizado commit ().
¿De todas formas puedo deshabilitar esa animación?
- Fragmento isAdded () devuelve false en un Fragmento ya agregado
- Fragmentos en ViewPager se recrean
- Tutorial de Android Fragment Basics
- Fragmento todavía existe después de quitar?
- Cómo detener la llamada onCreateView cuando cambia de ficha diferente (como tab1, tab2) en android?
- Android - instanciar un fragmento varias veces?
- Error de Android SDK: Intentar instanciar una clase que no es un fragmento
- Android Refreshing Fragment View después de AsyncTask
Lo primero que viene a la mente sería llamar a popBackStackImmediate()
justo antes de ir al fragmento C. De esa manera, cuando regrese de C, vaya directamente a A.
Ahora sobre la cosa de la animación, usted podría intentar esta respuesta .
Básicamente dice que se crea una bandera booleana que se establece en true cuando no se desea ver las animaciones.
Entonces, si la condición anterior es verdadera, el método onCreateAnimation
del fragmento devuelve una animación vacía.
- Cómo calcular el porcentaje de área borrada de un mapa de bits en android?
- Android – Cómo utilizar ORMLite dbhelper para todo el ciclo de vida de la aplicación