我有一个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
' s fragmentcontainer
内的位置。
关于如何解决这个问题的任何想法;我尝试进行搜索,其他结果表示硬编码Fragment
字段并立即分配,但这也没有解决问题。
答案 0 :(得分:1)
在添加F3之前,您可以转储F2的内部状态。如果你看到mActivity!= null就可以了。否则你会得到例外。
dump("", null, new PrintWriter(System.out, true), null);
我不确定在你的情况下是什么使得mActivity = null。在我的例子中,我在片段附加之前过早地调用片段的getChildFragmentManger(当mActivity = null时)。 当第一次调用它时,getChildFragmentManager在内部初始化片段的mChildFragmentManager。结果,我最终得到了一个具有零mActivity的mChildFragmentManager。后来,当我尝试使用它来添加一个子片段时,我得到了“活动已经被破坏”#39;异常。