web-dev-qa-db-fra.com

Que font exactement FragmentManager et FragmentTransaction?

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?

47
Alireza.Heidari
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

60
Zelldon

Android 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.

Android 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.

référence

24
Gready