Если вы сразу двигаетесь из E-> D сейчас, когда хотите вернуться назад, проверьте, присутствует ли уже фрагмент в бэкстеке, если он есть, вернитесь к этому, в противном случае откройте снова. Для этого
Вы можете использовать функции findFragmentByTag () или findFragmentById () для получения фрагмента. Если упомянутые методы возвращают ноль, то этот фрагмент не существует.
Fragment fragmentA = fragmentManager.findFragmentByTag("frag1");
if (fragmentA == null) {
//not exist
}
else{
//fragment exist
}
И в вашем другом сценарии, когда вы идете A-> B-> C-> D, а затем хотите добавить несколько фрагментов, тогда Yo может сделать это в java
for (int i=0;i<fragmentManager.backStackEntryCount;i++) { // or change the many fragments you want to pop.
fragmentManager.popBackStack();
}