Evento cuando se completa el FragmentTransaction

¿Es posible tener un evento cuando se completa FragmentTransaction?

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.content_frame, fragment).commit(); 

De hecho, utilizo un cajón para mi aplicación y me gustaría activar invalidateOptionsMenu(); Cuando la transacción se completa para cambiar el menú de mi barra de acción.

5 Solutions collect form web for “Evento cuando se completa el FragmentTransaction”

No necesita esperar a que se complete la transacción de fragmentos, puede llamar

 getSupportFragmentManager().executePendingTransactions(); 

Después de la llamada de función commit ().

Esto asegurará que la transacción esté completa.

Hei! Prueba esto:

 private OnBackStackChangedListener backStackListener = new OnBackStackChangedListener() { @Override public void onBackStackChanged() { String name = ""; int position = getSupportFragmentManager().getBackStackEntryCount(); if(position!=0){ FragmentManager.BackStackEntry backEntry=getSupportFragmentManager().getBackStackEntryAt(position-1); name=backEntry.getName(); } if(position==0){ mainActionBar(); } else if(name=="someWord"){ mainActionBar2(); } else{ mainActionBar3(); } } }; getSupportFragmentManager().addOnBackStackChangedListener(backStackListener); 

Y en Transaction add tag to backStack como esto:

 getSupportFragmentManager().beginTransaction() .replace(R.id.main, SomeFragment.newInstance(some argument)) .addToBackStack("someWord").commit(); 
 @Override public void onResume() { super.onResume(); getActivity().invalidateOptionsMenu(); } 

Cuando se completa la FragmentTransaction, se llamarán los métodos del ciclo de vida del Fragmento, como onResume ()

FYI, fragmento puede tiene su propio menú, ver http://developer.android.com/reference/android/app/Fragment.html#setHasOptionsMenu (boolean)

Puede utilizar el consejo dado en esta respuesta — ejecutar el código que necesita después de que la transacción se complete desde el método onAnimationEnd .

Para que esto funcione, debe establecer una animación en la FragmentTransaction utilizando, por ejemplo,

 transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); 

Podría considerar el uso de commitNow () en lugar de commit () y, a continuación, puede estar seguro de que la transacción ha finalizado. Por supuesto, es una cuestión de la complejidad de la transacción si usted debe hacerlo o no.

  • Agregar un oyente a un botón dentro de un alerta de alerta personalizado bloquea mi aplicación
  • Acceso a WebView desde otra función en la clase MainActivity
  • Cómo implementar OnZoomListener en MapView
  • Android, escucha de la casilla de verificación en XML?
  • Cómo deshabilitar onItemSelectedListener que se invocará al configurar el elemento seleccionado por código
  • ¿Cómo detectar pulsaciones de teclas de caracteres?
  • Android: dos Spinner onItemSelected ()
  • Establecer oyente de clic largo para listview
  • Detección de gestos fling en el diseño de la cuadrícula
  • Escuchando la notificación en Android
  • Android: desliza hacia la izquierda. Detección de gestos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.