Удалить фрагмент из backStack - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть ViewPager с 3 вкладками. Вкладка (2) содержит 2 фрагмента (A) -> (B). Вкладка (3) содержит 2 фрагмента (C) -> (D).

Tab(1)
Tab(2) --> (A) --> (B) 
Tab(3) --> (C) --> (D)

Внутри (A) при создании проверяется переменная "isUserLogged" (true / false). Моя проблема: Tab (2) сохраняется в backstack ViewPager. Поэтому, когда я нажимаю кнопку в (D), я хочу удалить Tab (2), поэтому, когда он снова создается, он снова проверяет «isUserLogged». Вот как я заменяю фрагменты:

FragmentTransaction trans = getChildFragmentManager().beginTransaction();
        trans.replace(R.id.hostsUlogged_container, new FragmentHostProfile(), "HostUnlogged-HostProfile");
        trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        trans.addToBackStack("hostUnlogged_screen");
        trans.commit();

Как мне удалить указанный c фрагмент с тегом ("hostUnlogged_screen")? Спасибо.

1 Ответ

1 голос
/ 19 апреля 2020

Вы можете удалить указанный c фрагмент по тегу следующим образом:

FragmentManager fm = getChildFragmentManager();
Fragment fragment=fm.findFragmentByTag("hostUnlogged_screen");
fm.beginTransaction().remove(fragment).commit();
...