我在单个容器中添加了两个片段(比如A和B)。我尝试用C替换它们。 根据文档,replace应从指定的容器中删除所有片段,然后添加新的片段。相反,它只取代第一个。所以我最终得到了B和C片段。 这让我很困惑。这是一个错误还是什么?
我已经知道在单个容器中添加几个片段被认为是不好的做法。但无论如何我很好奇。
更新: 发现之前:http://code.google.com/p/android/issues/detail?id=28452
答案 0 :(得分:1)
我想你确实喜欢这样:
Fragment fragmentA = (getFragmentManager().findFragmentById(R.id.fragmentC));
Fragment fragmentB = (getFragmentManager().findFragmentById(R.id.fragmentB));
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.remove(fragmentA);
ft.remove(fragmentB);
ft.commit();
然后只需添加新片段。
getSupportFragmentManager().beginTransaction().add(R.id.container, fragmentC).commit();