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.

  • Cómo hacer clic o tocar en un texto de TextView
  • ¿Por qué mi onItemSelectedListener no se llama en un ListView?
  • Evento de incendio en AsyncTask finalizado
  • Cómo implementar un escucha
  • Android: escucha para detectar cambios en las propiedades de una vista (por ejemplo, android: layout_marginTop)
  • Contando Chars en EditText Changed Listener
  • Android ¿cuántos hilos puedo tener?
  • Android View.OnKeyListener: haga clic una vez, ejecute dos veces
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.