Я создал образец приложения для проверки этой проблемы с перекрытием.
У меня есть тип фрагмента, Fragment1, и я создаю новый экземпляр Fragment1 и добавляю его в FrameLayout в моем действии во время выполнения. Я добавляю фрагмент с помощью нескольких кнопок.
Примечание: я присвоил каждому новому экземпляру Fragment1 другой номер (# 1, # 2, # 3 и т. Д.), Который будет отображаться в пользовательском интерфейсе, чтобы помочь мне понять выяснить, какой фрагмент я просматриваю.
Итак ... вот что я делаю:
Теперь у меня есть фрагменты в следующем порядке: 1 (# 1), 2 ( №2), 1 (№3), 2 (№4), 1 (№5), 2 (№6).
Я нажимаю клавишу возврата при просмотре фрагмента №6.
Кажется, что фрагменты отображаются НАДПИСЬ друг на друга.
ПОЧЕМУ? Есть ли проблема с дублированием? Как я могу устранить эту дублирующуюся проблему. Я думал, что это проблема библиотеки совместимости ... но она тоже есть в версии 3.0.
Код для добавления фрагментов:
public int doFragmentChange(int cont1, Fragment frag1, String tag1, int cont2, Fragment frag2, String tag2,
boolean addToStack, String stackTag) {
FragmentManager fm = getFragmentManager();// getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
if (frag1 != null) {
ft.replace(cont1, frag1, tag1);
}
if (frag2 != null) {
ft.replace(cont2, frag2, tag2);
}
// add fragment to stack
if (addToStack)
ft.addToBackStack(stackTag);
return ft.commit();
}