我的主视图由 2 个片段组成
gfs = new GalleriesFragment();
gf = new GalleryFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.frame1,gfs);
ft.add(R.id.frame2,gf);
ft.commit();
在我想参加的活动中
- 用第 2 帧中的片段替换第 1 帧片段。
- 用新片段替换 frame2 片段
(类似于 gmail 应用程序)
所以我这样做:
ImageFragment ig = new ImageFragment();
FragmentTransaction transaction = null;
transaction = getFragmentManager().beginTransaction();
transaction.replace(gf.getId(), ig);
transaction.replace(gfs.getId(), gf);
transaction.addToBackStack("remove1");
transaction.commit();
第一次替换有效,但第二次抛出错误:
java.lang.IllegalStateException:无法更改片段 GalleryFragment{41034f18 #1 id=0x7f060008} 的容器 ID:以前是 2131099656 现在是 2131099655
我尝试了不同的组合,通过删除然后添加片段但没有成功。
是否可以仅在一次交易中做到这一点?
谢谢 !