Удалить фрагмент не работает после 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();

0 ответов

Другие вопросы по тегам