2015-07-22 1 views
3

j'ai vu que quand j'exécuteL'événement sur le fragment remplace-t-il?

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
MyFragment myFragment = new MyFragment(); 
fragmentTransaction.replace(R.id.parent, myFragment, "MyFragment"); 
fragmentTransaction.addToBackStack(null); 
fragmentTransaction.commit(); 

il n'y a pas de méthode appelée sur le vieux fragment. J'ai essayé avec:

  • onStop();
  • onPause();
  • onDestroy();
  • onDetach();

Personne ne s'appelle, pourquoi?

Répondre

1

Il se peut qu'il y ait une erreur de frappe dans votre message ou un gros malentendu. D'abord il n'y a pas fragmentManager.replace(), peut-être que vous vouliez dire FragmentTransaction.replace().

Si c'est le cas, essayez à nouveau () et onDestroy(). exemple, assurez-vous que l'attribut @Override:

@Override 
public void onDetach() { 
... 
} 
+0

I édité mon premier post, j'ai essayé aussi surDetach(), mais n'est pas viré (j'ai essayé avec un message de journal). Simplement j'ai un parent, et 2 fragment. D'abord j'ajoute MyFragment2, ensuite je remplace MyFragment2, avec MyFragment. Je veux déclencher l'événement MyFragment2 lorsque j'utilise fragmentTransaction.replace (R.id.parent, myFragment, "MyFragment"); – helloimyourmind

+0

@helloimyourmind, Peut-être que vous devriez poster le code pour MyFragment. Cet aspect d'Android devrait fonctionner facilement. Vous devrez répondre plus rapidement que vous avez. Il est difficile pour moi ou n'importe qui de se souvenir du problème. –

+0

J'ai le même problème que l'OP –

0

Si vous allez changer l'élément coché dans le tiroir de navigation, je pense que la meilleure façon est d'utiliser l'événement onAttachFragment dans l'activité principale