it-swarm.com.ru

Что конкретно делают FragmentManager и FragmentTransaction?

У меня есть простой код ниже

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

Что делают эти строки кода?

47
Alireza.Heidari
getFragmentManager()

Верните FragmentManager для взаимодействия с фрагментами, связанными с этим действием.

FragmentManager, который используется для создания транзакций для добавления, удаления или замены фрагментов.

fragmentManager.beginTransaction();

Начать серию операций редактирования фрагментов, связанных с этим FragmentManager.

Объект FragmentTransaction, который будет использоваться.

fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);

Заменяет текущий фрагмент на mFeedFragment в макете с идентификатором: R.id.fragment_container

fragmentTransaction.addToBackStack(null);

Добавьте эту транзакцию в задний стек. Это означает, что транзакция будет запомнена после того, как она будет зафиксирована, и обратится к своей операции, когда позднее будет удалена из стека.

Полезно для использования кнопки возврата, чтобы можно было откатить транзакцию. Имя параметра:

Необязательное имя для этого состояния стека или значение NULL.

Смотрите для информации другой вопрос Что означает addToBackStack с нулевым параметром?

Оператор Last фиксирует транзакцию и выполняет все команды.

Обратитесь к документации Google для получения дополнительной помощи:

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

FragmentManager управляет Fragments в Android, в частности он обрабатывает транзакции между фрагментами. Транзакция - это способ добавления, замены или удаления фрагментов.

Android FragmentTransaction

Как было сказано ранее, FragmentTransaction дает нам методы для добавления, замены или удаления фрагментов в Android. Это дает нам интерфейс для взаимодействия с фрагментами.


fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);

Метод replace(int containerViewId, Fragment fragment) заменяет существующий объект Fragment из контейнера containerViewId и ​​добавляет Fragment fragment

fragmentTransaction.addToBackStack(null);

Этот метод, addToBackOfStack(String name), добавляет эту транзакцию в задний стек, это можно использовать так, чтобы Fragments запоминалось и могло снова использоваться Activity

fragmentTransaction.commit();

Метод commit() планирует эту транзакцию, это не мгновенно; Это запланировано в главном потоке, чтобы быть выполненным, когда поток готов.

ссылка

24
Gready