У меня есть ViewPager с 3 вкладками. Вкладка (3) включает 2 фрагмента (A) -> (B).
Tab(1)
Tab(2)
Tab(3) --> (B) --> (C)
Способ замены фрагментов в Tab (3):
FragmentTransaction trans = getActivity().getSupportFragmentManager().beginTransaction();
trans.replace(R.id.B_container, new FragmentC().newInstance(), "C");
trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
trans.addToBackStack("B->C");
trans.commit();
Когда я в (B), и я нажимаю кнопку, и я сразу перехожу к Tab (3), пропуская (A). Вот код кнопки (B):
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
Все работает хорошо. Проблема в том, что я нахожусь в (B), но затем я go перехожу на Tab (1) или Tab (2) и нажимаю кнопку, когда она не работает. Пожалуйста, дайте мне знать, что я я делаю неправильно Спасибо.
// =================================== =========================================
Я попытался заменить etActivity () .getSupportFragmentManager () с getChildFragmentMaganer (). Поскольку обычный метод popBackStack () больше не работал, мне пришлось его изменить. Теперь это работает, и у меня та же проблема, хотя.
FragmentManager fm = getActivity().getSupportFragmentManager();
for (Fragment frag : fm.getFragments()) {
FragmentManager childFm = frag.getChildFragmentManager();
if (childFm.getBackStackEntryCount() > 0) {
childFm.popBackStack();
}
}
}