J'ai un code simple ci-dessous
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Que font ces lignes de code?
getFragmentManager()
Renvoie FragmentManager pour avoir interagi avec les fragments associés à cette activité.
FragmentManager utilisé pour créer des transactions permettant d'ajouter, de supprimer ou de remplacer des fragments.
fragmentManager.beginTransaction();
Lancez une série d'opérations d'édition sur les fragments associés à FragmentManager.
L'objet FragmentTransaction qui sera utilisé.
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
Remplace le fragment actuel par le mFeedFragment
de la mise en page par l'id: R.id.fragment_container
fragmentTransaction.addToBackStack(null);
Ajoutez cette transaction à la pile arrière. Cela signifie que la transaction sera mémorisée une fois qu'elle est validée et inversera son opération lorsqu'elle sera extraite ultérieurement de la pile.
Utile pour l'utilisation du bouton de retour afin que la transaction puisse être annulée. Le nom du paramètre:
Est un nom facultatif pour cet état de pile arrière, ou null.
Voir pour information l'autre question Quelle est la signification de addToBackStack avec un paramètre null?
La dernière instruction valide la transaction et exécute toutes les commandes.
Voir la documentation google pour plus d'aide:
http://developer.Android.com/reference/Android/support/v4/app/FragmentActivity.htmlhttp://developer.Android.com/reference/Android/app/ FragmentManager.htmlhttp://developer.Android.com/reference/Android/app/FragmentTransaction.html
FragmentManager
Un FragmentManager
gère Fragments
sous Android, plus précisément, il gère les transactions entre fragments. Une transaction est un moyen d'ajouter, de remplacer ou de supprimer des fragments.
FragmentTransaction
Comme indiqué précédemment, un FragmentTransaction
nous donne des méthodes pour ajouter, remplacer ou supprimer des fragments sous Android. Cela nous donne une interface pour interagir avec des fragments.
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
La méthode replace(int containerViewId, Fragment fragment)
remplace un objet Fragment
existant du conteneur containerViewId
et ajoute le _Fragment fragment
_
fragmentTransaction.addToBackStack(null);
Cette méthode, addToBackOfStack(String name)
, ajoute cette transaction à la pile arrière, elle peut être utilisée pour que les Fragments
soient mémorisées et puissent être réutilisées par le Activity
.
fragmentTransaction.commit();
La méthode commit()
planifie cette transaction, ce n'est pas instantané; Il est prévu que le thread principal soit prêt lorsque le thread est prêt.