基本上这个问题已被多次询问here和here。给出的解决方案对我不起作用。在一些相关的答案没有由用户发布。 我想要嵌套片段。我的方案如下:
我有一个MainActivity,ProductEnterFrag和ProductListFrag,ProductDetailFrag。
我已经通过FragmentManager动态地将ProductEnterFrag添加到MainActivity。像这样:
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, new ProductEnterFrag());
ft.commit();
ProductEnter布局如下:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragContainer"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我已将ProductListFrag添加到ProductEnterFrag,如下所示:
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ProductListFrag(new ProductListFrag());
}
public void ProductListFrag(SherlockFragment frag) {
getChildFragmentManager().beginTransaction().add(R.id.fragContainer, frag).commit();
getChildFragmentManager().executePendingTransactions();`
}
ProductListFrag,其布局如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="product1" />
</LinearLayout>
现在点击按钮,我想添加另一个片段,说ProductDetailFrag,它应该是另一个子片段。 当我尝试从ProductListFrag添加ProductDetailFrag时,如下所示:
new ProductEnterFrag().ProductListFrag(new ProductDetailsFrag());
它让我:java.lang.IllegalStateException: Activity has been destroyed
我是嵌套片段的新手。请帮助我,我做错了。我在最近2天遇到了这个问题。