Мой простой макет имеет только фрагмент заполнитель:Удалить фрагменты, которые не ставят на backstack
<FrameLayout
android:id="@+id/fragment_placeholder"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
я во-первых, добавить 1-й фрагмент к этому заполнителем:
fragmentTransaction.add(R.id.fragment_placeholder, firstFragment, "first"); //I did not put to backstack
У меня есть a 2-й фрагмент, который заменяет вышеуказанный фрагмент и положить его обратно в стек:
FragmentManager fragMgr = getSupportFragmentManager();
FragmentTransaction fragTrans = fragMgr.beginTransaction();
//initialize an fragment instance
Fragment secondFragment = initSecondFragment();
//replace with the fragment
fragTrans.replace(R.id.fragment_placeholder, secondFragment, "second");
//Add fragment transaction to back stack
fragTrans.addToBackStack(null);
//commit the transaction
fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragTrans.commit();
Позже у меня есть некоторые фрагменты заменить предыдущий фрагмент, но НЕ положить на backstack.
Кажется, что те фрагменты, которые не были помещены в стопку, всегда будут отображаться на экране, нажатие кнопки на задней панели не повлияет на них.
Итак, Как найти те фрагменты, которые не находятся в стеке, и как их удалить с экрана?
Как проверить, добавлен ли фрагмент в Backstack или нет? –
@ KK_07k11A0585: Это действительно относится к отдельному вопросу StackOverflow. При этом, если вы передаете тег 'addToBackStack()', вы можете перебирать записи заднего стека с помощью методов getBackStackEntry() 'на' FragmentManager', чтобы найти запись с нужным тегом. Фрагменты сами по себе не находятся в задней части; фрагмент * сделка * есть. – CommonsWare
Я понял. Но у меня есть следующий сценарий \ n, в котором есть 3 фрагмента FragmentA1, FragmentA2, FragmentA3. Я добавил FragmentA1 и FragmentA2 в backstack, но не FragmentA3. Итак, если я нажму кнопку FragmentA3, то он заканчивает FragmentA2 и переопределяет FragmentA3 в FragmentA1. Пожалуйста, помогите мне в сортировке этой проблемы. –