Я пытался решить самую странную проблему, связанную с управлением обратным стеком.
Цель состоит в том, чтобы иметь следующую логику (фрагменты представлены буквами A, B, C):
A -> B, B -> C, и когда backPressed, C -> A
, поскольку C может быть различными фрагментами, а когда в C и backPressed фрагмент B никогда не должен появляться, я добавляю переход A-> B к backstack и B-> C не добавляется, просто заменяется B на C, поэтому, когда я делаю backPress, C переходит к A.
Это работает отлично в первый раз - поведение такое, как и ожидалось,но когда я пытаюсь сделать это второй раз подряд, приложение вылетает:
getSupportFragmentManager().popBackStackImmediate()
, выдавая исключение:
java.lang.IllegalStateException: Fragment already added: FragmentC
...
Я пытался заменить на getSupportFragmentManager().popBackStack
, но просто ошибка выдается через несколько наносекунд.
Есть ли какая-то причина, по которой при попытке извлечь фрагмент из стека возникает ошибка добавления его?Есть идеи, как это решить?
Заранее большое спасибо