Сохраните все свои фрагменты в ArrayList.
Инициализация:
List<Fragment> activeCenterFragments = new ArrayList<Fragment>();
Добавление фрагмента в список:
private void addCenterFragments(Fragment fragment) {
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.empty_center_layout, fragment);
activeCenterFragments.add(fragment);
fragmentTransaction.commit();
}
Если вы хотите удалить все их, сделайте следующее:
private void removeActiveCenterFragments() {
if (activeCenterFragments.size() > 0) {
fragmentTransaction = fragmentManager.beginTransaction();
for (Fragment activeFragment : activeCenterFragments) {
fragmentTransaction.remove(activeFragment);
}
activeCenterFragments.clear();
fragmentTransaction.commit();
}
}
Я использовал этот метод в производстве в течение многих лет, и он работает как шарм. Дайте знать, если у вас появятся вопросы.
Возможные дубликатом [Фрагменты: Удалить все фрагменты в представлении] (http://stackoverflow.com/questions/14764043/fragments-remove -all-fragments-in-a-view) – ThomasThiebaud