片段replace()不替换所有片段

时间:2012-04-08 19:15:17

标签: android replace add fragment

如果我使用相同的viewId调用片段A和B的add(),然后尝试使用片段C调用该viewId上的replace(),则只删除片段A,最后是片段B和C.文档,A和B应该被C替换......或者我读错了文档?

这是一个组合:

public class FragmentActivity extends SherlockFragmentActivity {
    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        getSupportFragmentManager().beginTransaction().add(R.id.fragment, new FragmentA()).add(R.id.fragment, new FragmentB()).commit();

        ((Button) findViewById(R.id.swap)).setOnClickListener(new View.OnClickListener() {          
            @Override
            public void onClick(final View view) {
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment, new FragmentC()).commit();
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

查看文档,.replace调用一个将片段作为参数的方法。所以我猜它只是意味着要替换一个片段。我真的不明白你为什么要在同一个id中添加两个片段。