Просмотрите следующую информацию, возможно, вы получите разъяснение
1- фрагментTransaction.addToBackStack (str); Добавьте эту транзакцию в задний стек.Это означает, что транзакция будет запомнена после ее фиксации и будет отменять свою работу при последующем извлечении из стека.
2- fragTransaction.replace (int containerViewId, Fragmentgment, String tag) Заменяет существующий фрагмент, который был добавлен в контейнер.
По сути, это то же самое, что вызывать remove (Fragment) для всех добавленных в данный момент фрагментов, которые были добавлены с тем же containerViewId, а затем добавить (int, Fragment, String) с теми же аргументами, что и здесь.
3- FragmentTransaction.add (int containerViewId, Фрагмент фрагмента, тег String) Добавить фрагмент в состояние активности.Этот фрагмент может также иметь свое представление (если Fragment.onCreateView возвращает ненулевое значение) в контейнерное представление действия.
Что означает замена уже существующего фрагмента и добавление фрагмента в действиесостояние и добавление активности в задний стек?
Существует стек, в котором хранятся все действия в рабочем состоянии.Фрагменты относятся к деятельности.Таким образом, вы можете добавить их, чтобы встроить в действие.
Когда вы переходите к текущему макету, у вас есть идентификатор этого контейнера, чтобы заменить его нужным фрагментом.
Вы можететакже вернитесь к предыдущему фрагменту в backStack с помощью метода popBackStack ().Для этого вам нужно добавить этот фрагмент в стек, используя addToBackStack () и затем commit () для отражения.Это в обратном порядке с текущим сверху.
findFragmentByTag does this search for tag added by the add/replace method or the addToBackStack method ?
Если зависит от того, как вы добавили тег.Затем он просто находит фрагмент по тегу, который вы определили ранее, либо при накачке из XML, либо при предоставлении при добавлении в транзакцию.