У меня есть 2 фрагмента A и B в моем приложении. mainactivity начинается с фрагмента А. по нажатию кнопки в нем я заменить его фрагмент B.Навигация между двумя фрагментами
FragmentManager fm = getSupportFragmentManager();
B_Fragment pfrag = new B_Fragment();
pfrag.setArguments(args);
fm.beginTransaction().replace(R.id.frag_container, pfrag)
.addToBackStack("A_Fragment").commit();
Сейчас в фрагменте B я нажать на кнопку, чтобы заменить его фрагмента А с использованием:
fm.popBackStack();
fm.beginTransaction().addToBackStack("B_fragment").commit();
Фрагмент A успешно выдвигается и выталкивается из стека, где в качестве фрагмента B нет. Каждый раз, когда B_фрагмент уничтожен и создается новый. Так может кто-то сказать мне, что мне не хватает, и как нажимать фрагмент B на стек и выходить одновременно.
Насколько я знаю, 'replace()' вызывает 'remove()' на существующий фрагмент, который уничтожит его. Вместо 'replace()' попробуйте 'hide()' существующий, а затем 'add()' новый. –
из http://developer.android.com/training/basics/fragments/fragment-ui.html-> Примечание.> Когда вы удаляете или заменяете фрагмент и добавляете транзакцию в задний стек, удаляемый фрагмент остановлен (не разрушен). Если пользователь переместится назад для восстановления фрагмента, он перезагрузится – vaibhav