Можно ли добавить addToBackStack и заменить транзакцию фрагмента?

Любые мысли о следующем коде? В моем тестировании я обнаружил, что замененный фрагмент не разрушен, и экземпляр все еще находится вокруг при появлении заднего стека. Просто посмотрим, чтобы убедиться, что это допустимый способ использования транзакций фрагментов.

getSupportFragmentManager().beginTransaction().addToBackStack(null).replace(frame, fragmentB).commit();

Моя причина для использования replace заключается в том, что он вызывает замененный фрагмент для запуска анимации выхода.

Ответ 1

Вы можете обратиться к руководству разработчика конструктора Android для транзакции фрагмента: http://developer.android.com/guide/components/fragments.html

Конкретно фрагмент ниже:

// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

Итак, да, что вы делаете, это правильный подход при замене фрагментов.