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.

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?

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.

  • Fragmento replace () no reemplaza todos los fragmentos
  • Cuando se aplica onBackPressed en Fragment que extiende el diálogo Fragment
  • Fragmento de acceso del adaptador
  • MapFragment en Fragment, alternativas?
  • Cómo pasar datos de un fragmento a un dialogFragment
  • Contextthemewrapper no se puede transmitir a la actividad
  • Android ViewPager Excepción después de pulsar el botón Atrás
  • Cómo descartar un DialogFragment al presionar fuera del cuadro de diálogo?
  • Atributos personalizados en fragmentos de Android
  • Android: mostrar / ocultar fragmento deja un área vacía
  • Android: El nuevo método getContext () de Fragment es qué contexto?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.