В моей MainActivity в OnCreate метод, который я добавить() MainFragment к FrameLayout main_view_container:Фрагменты внутри ViewPager не разрушались
if (savedInstanceState == null) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.main_view_container, new MainFragment(), MainFragment.FRAGMENT_TAG);
fragmentTransaction.commit();
}
В моей MainFragment я имею ViewPager с FragmentStatePagerAdapter и каждая страница сама Фрагмент (PagerFragment).
Затем в какой-то момент после нажатия кнопки я хочу заменить весь основной фрагмент другим фрагментом (заменяющим фрагментом) и добавить транзакцию в задний стек, чтобы я мог вернуться к нажатию кнопки MainFragment на задней панели. Поэтому я делаю следующее:
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_view_container, new ReplacementFragment(), null);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
После того как я совершить сделку MainFragment останавливается и onDestroyView() вызывается, но совершенно ничего не происходит с PagerFragments (которые находятся в ViewPager в MainFragment) Не случае один OnStop() вызова. Затем, когда я возвращаюсь, представление MainFragment воссоздается в onCreateView(), что также означает новый экземпляр ViewPager, но все же ничего с PagerFragments.
Как возможно, что в родительском фрагменте onDestroyView вызывается, но не в дочерних фрагментах?
Использовал getChildFragmentManager() при создании пейджера-адаптера внутри MainFragment? – cYrixmorten
Почему вы не открываете новую активность вместо того, чтобы пытаться заменить весь свой основной файл другим? – Karakuri
@cYrixmorten Нет Я этого не делал, я использовал FragmentManager Activity, и я думаю, поэтому детские фрагменты не управлялись. Это решает мое дело, спасибо! –