FragmentTransaction在替换旧片段后添加片段,但onDestroyView调用



我替换了FragmentA:

FragmentManager fm = MainActivity.getGlobal().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.addToBackStack(fragmentA.getClass().getSimpleName());
ft.replace(relId, fragmentA,fragmentA.getClass().getSimpleName());
ft.commitAllowingStateLoss();

并添加片段 B :

FragmentManager fm = MainActivity.getGlobal().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(relId, fragmentB);
ft.commitAllowingStateLoss();

添加FragmentA:onDestroyView调用后,如何修复?我希望 FragmentB 添加和 Fragment Not DestroyView

谢谢

调用replace()

类似于在 A 上调用remove(),他们在 B 上调用add(),因此当您替换它时无法保存 A,它是onDestroy(),在DestroyView()等将被调用。

但是,您可以调用 B 的add(),而不是replace()调用 B 在 A 之上添加 B,而无需删除 A 并将 B 添加到后退堆栈以在后按时导航到 A

祝你有美好的一天,阿里

最新更新