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