Подтвердить что ты не робот

Что именно делает FragmentManager и FragmentTransaction?

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

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

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

4b9b3361

Ответ 1

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.html http://developer.android.com/reference/android/app/FragmentManager.html http://developer.android.com/reference/android/app/FragmentTransaction.html

Ответ 2

Android FragmentManager

A 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() планирует эту транзакцию, это не мгновенно; Планируется, что основной поток будет выполнен, когда поток будет готов.

Reference