Удалить фрагмент не работает после addToBackStack
Когда я запускаю фрагмент и добавляю его в BackStack, то его невозможно удалить с помощью FragmentTransaction.remove(), добавьте так:
mManager.beginTransaction()
.add(R.id.fragment_container, new FB(), "B")
.addToBackStack("addB")
.commit();
вот код удаления:
FB fb = (FB) mManager.findFragmentByTag("B");
if (fb != null) {
FragmentTransaction ft = mManager.beginTransaction();
ft.remove(fb);
ft.detach(fb);
ft.addToBackStack("removeB");
ft.commit();
} else {
showToast("B is not exist");
}
после того, как я впервые удалю фрагмент B, я все еще могу получить фрагмент B
FB fb = (FB) mManager.findFragmentByTag("B")
а также onDestory()
onPause()
onDetach()
тоже не работают.
Как я могу узнать, удален ли фрагмент B?
Выполните следующие шаги могут вызвать исключение:
java.lang.IllegalStateException: Fragment already added: FB{424365e0 #0 id=0x7f0c004f B}
шаги:
addB -> removeB -> removeB -> onBackPressed();