FragmentTransaction 在替换旧片段但 onDestroyView 调用后添加片段
FragmentTransaction add fragment after replace old fragment but onDestroyView called
我替换了 FragmentA :
FragmentManager fm = MainActivity.getGlobal().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.addToBackStack(fragmentA.getClass().getSimpleName());
ft.replace(relId, fragmentA,fragmentA.getClass().getSimpleName());
ft.commitAllowingStateLoss();
并添加 FragmentB :
FragmentManager fm = MainActivity.getGlobal().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(relId, fragmentB);
ft.commitAllowingStateLoss();
添加FragmentA:onDestroyView
调用后,如何解决?我希望添加 FragmentB 而 Fragment 不是 DestroyView
谢谢
对 replace()
的调用类似于对 A 调用 remove()
然后对 B 调用 add()
因此当你替换它时无法保存 A 它是 onDestroy()
, onDestroyView()
等将被调用。
但是您可以调用 add()
来代替调用 replace()
为 B 在 A 之上添加 B 而无需删除 A 并将 B 添加到后退堆栈以在后退时导航到 A
祝你有美好的一天,阿里
我替换了 FragmentA :
FragmentManager fm = MainActivity.getGlobal().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.addToBackStack(fragmentA.getClass().getSimpleName());
ft.replace(relId, fragmentA,fragmentA.getClass().getSimpleName());
ft.commitAllowingStateLoss();
并添加 FragmentB :
FragmentManager fm = MainActivity.getGlobal().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(relId, fragmentB);
ft.commitAllowingStateLoss();
添加FragmentA:onDestroyView
调用后,如何解决?我希望添加 FragmentB 而 Fragment 不是 DestroyView
谢谢
对 replace()
的调用类似于对 A 调用 remove()
然后对 B 调用 add()
因此当你替换它时无法保存 A 它是 onDestroy()
, onDestroyView()
等将被调用。
但是您可以调用 add()
来代替调用 replace()
为 B 在 A 之上添加 B 而无需删除 A 并将 B 添加到后退堆栈以在后退时导航到 A
祝你有美好的一天,阿里