Пропустить фрагменты на 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();
}
}