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

4
我在一个单一的事务中向单一容器添加了两个片段(称为A和B)。我试图用C替换它们。 根据文档,replace应该从指定的容器中删除所有片段,然后添加新的片段。但实际上,它只替换第一个片段。所以我最终得到了B和C片段。 这让我很困惑。这是一个bug还是什么? 我已经知道将多个片段添加到单个容器被认为是不好的做法。但无论如何我还是很好奇。 更新: 找到之前的问题:http://code.google.com/p/android/issues/detail?id=28452

你有没有得到那个答案? - Eran Katsav
不,我只是忍受着。 - Eugene
1个回答

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

1
我相信这会起作用,但问题是为什么文档有误。 - Eugene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接