Пропустить фрагменты на BackPress (добавить / скрыть)

Я использую FragmentTransaction для прохождения фрагментов, это выглядит так:

        FragmentManager fm = oldFragment.getFragmentManager();
        FragmentTransaction fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.add(oldFragment.getId(), newFragment, tag);
        fragmentTransaction.hide(oldFragment);
        fragmentTransaction.addToBackStack(tag);
        fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        fragmentTransaction.commit();

Имея несколько фрагментов, я хочу пропустить некоторые из них при возвращении.

Пример:

Frag1 -> (Нажмите Далее) -> Frag2 -> (Нажмите Далее) -> Frag3 -> (Нажмите Назад) -> Frag1

Это решение работает, когда я использую замену вместо добавления и скрытия

getFragmentManager().popBackStack(
    tag, 
    FragmentManager.POP_BACK_STACK_INCLUSIVE);

Reference` Пропустить некоторые фрагменты на BackPressed

Но в моем случае пропущенные фрагменты показываются на короткое время. Как я могу сделать это так, как будто фрагментов между ними никогда не было?

1 ответ

Я использую эту функцию для удаления фрагментов, скажите мне, если я помог.

public static void removeFragment(FragmentActivity activity) {
    try {
        FragmentManager supportFragmentManager = activity.getSupportFragmentManager(); // getFragmentManager();
        FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
        fragmentTransaction.setCustomAnimations(R.anim.slide_down, R.anim.slide_up);
        fragmentTransaction.remove(supportFragmentManager.getFragments().get(0));

        try {
            fragmentTransaction.commit();

        } catch (Exception e) {
        }
        supportFragmentManager.popBackStack();

    } catch (NullPointerException exception) {
        exception.printStackTrace();
    }
}
Другие вопросы по тегам