我有一个Fragment
,我们称它为F1
包含Fragment
F2
;依次包含Fragment
F3
。
当我启动我的应用程序时,我收到此错误:
IllegalStateException: Activity has been destroyed
指的是这一行代码:
getChildFragmentManager().beginTransaction().add(R.id.fragmentcontainer, fragment_profile_list.newInstance()).commit();
其中
fragmentcontainer
是我的主要上级FrameLayout
Fragment
中的F1
。 F2
放在F1
的fragmentcontainer
中的位置。关于如何解决这个问题的任何想法;我尝试进行搜索,并说其他结果对
Fragment
字段进行硬编码并立即分配它,但这也无法解决问题。 最佳答案
您可以在添加F3之前转储F2的内部状态。如果看到mActivity!= null,那就没问题了。否则,您将获得例外。
dump("", null, new PrintWriter(System.out, true), null);
我不确定在您的情况下是什么使mActivity = null。就我而言,我在连接片段之前调用片段的getChildFragmentManger太早(当mActivity = null时)。
首次调用时,getChildFragmentManager在内部为片段初始化mChildFragmentManager。结果,我最终得到了一个mChildFragmentManager,其mActivity为空。后来,当我尝试使用它添加子片段时,出现了“活动已被破坏”异常。
关于android - IllegalStateException Activity 已被破坏-三重 fragment ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23191949/