Backstack не показывает желаемый результат

У меня есть 3 фрагмента, а именно frag1, frag2, frag3.

Первый фрагмент имеет две кнопки. Первый щелчок кнопки помещает frag2 на экран, а щелчок второй кнопки помещает frag3 на экран.

Рабочий процесс, которому должна следовать первая кнопка, таков:

фрагмент1 -> фрагмент2

фрагмент2 -> фрагмент3

При нажатии кнопки «Назад»: frag3 -> frag1

Рабочий процесс, которому должна следовать вторая кнопка, таков:

фрагмент1 -> фрагмент3

При нажатии кнопки «Назад»: frag3 -> frag1

Рабочий процесс в порядке, но когда я выполняю первую операцию кнопки (т.е. frag1->frag2->frag3->frag1), а затем вторую операцию кнопки, фрагмент frag1 заменяется на frag3, но когда я нажимаю кнопку «Назад», я все равно получаю frag3 на экране, а затем снова нажав кнопку «Назад», приложение закрывается.

Может ли кто-нибудь помочь мне в том, какой неправильный подход я использую к этой проблеме, и, пожалуйста, дайте ее решение. Мы будем очень признательны.


person theAndDev    schedule 17.11.2014    source источник


Ответы (1)


Возможное решение вашей проблемы

  • В файле макета вашей активности создайте FrameLayout и поместите фрагмент 1 с видимостью = видимым.
  • Когда нужно отобразить фрагмент 2/3, просто измените видимость frag1 на исчезнувший, добавьте фрагмент 2/3 в структуру кадра и измените видимость фрагмента1 на исчезнувший.
  • Когда вы находитесь во фраге 2/3 и должны перейти на фраг3/2, удалите 2/3 и добавьте 3/2.
  • Когда вы находитесь в frag2/3 и хотите вернуться к 1, удалите frag2/3 и покажите frag1
person pvn    schedule 17.11.2014