У меня есть фрагмент, который расширяет DialogFragment в Activity. Я показываю это, когда нажимаю на кнопку:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(TabsFragment.newInstance(), "Fragment");
ft.addToBackStack(null);
ft.commit();
И в методе onDismiss во Fragment я удаляю его следующим образом:
FragmentManager fragmentManager = getChildFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (fragmentManager.getBackStackEntryCount() > 0)
fragmentManager.popBackStack();
fragmentTransaction.commit();
Итак, мой проблема в том, что когда я дважды быстро нажимаю на кнопку, появляются два фрагмента. Я заменяю эти коды на Activity:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
if (fragmentManager.getBackStackEntryCount() == 0) {
ft.add(TabsFragment.newInstance(), "Fragment");
ft.addToBackStack("Tabs");
ft.commit();
}
Но при этом фрагмент отображается только один раз. Когда я нажимаю на кнопку getBackStackEntryCount равен 0, фрагмент появляется. Когда фрагмент распущен и снова нажмите кнопку, getBackStackEntryCount равен 1, хотя я удаляю фрагмент в методе onDismiss . Есть ли другой способ удаления фрагмента и отключения getBackStackEntryCount ?