FragmentTransaction.replace仅替换容器中的第一个Fragment

时间:2013-10-14 19:41:14

标签: android replace android-fragments fragmenttransaction

我在单个容器中添加了两个片段(比如A和B)。我尝试用C替换它们。 根据文档,replace应从指定的容器中删除所有片段,然后添加新的片段。相反,它只取代第一个。所以我最终得到了B和C片段。 这让我很困惑。这是一个错误还是什么?

我已经知道在单个容器中添加几个片段被认为是不好的做法。但无论如何我很好奇。

更新: 发现之前:http://code.google.com/p/android/issues/detail?id=28452

1 个答案:

答案 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();