Сценарий:
Активность добавить фрагмент A к Framelayout.
Фрагмент А заменяет Фрагмент Б.
До шага 2 все работает отлично.
- Фрагмент B заменить на Фрагмент B (также пытался заменить на Фрагмент A).
При использовании addToBackStack () на шаге 3 все работает отлично. Выходными данными будут A> B> B (воссозданный)> B (onBackPressed () / popBackStack ())> A.
Но когда я не использую addToBackStack () на шаге 3, вывод будет A> B> B (воссоздан)> A (перекрывается с B).
Есть ли причины, по которым произошло перекрытие?
Активность добавить фрагмент A:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
ChartFragment fragment = new ChartFragment();
fragmentTransaction.add(R.id.container, fragment);
fragmentTransaction.commit();
Фрагмент A заменяет Фрагмент B:
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
ChildChartFragment fragment = new ChildChartFragment();
fragmentTransaction.replace(R.id.container, fragment);
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragment.setArguments(b);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Воссоздание фрагмента B:
getFragmentManager().beginTransaction().replace(R.id.container, new ChildChartFragment()).commit();