0

我正在尝试将片段添加到活动中,以避免声明布局 xml。我正在做

@Override
protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
    getSupportFragmentManager().beginTransaction()
            .add(android.R.id.content, new mFragment()).commit();
} 

但它崩溃了:

java.lang.IllegalStateException: The specified child already has a parent. 
You must call removeView() on the child's parent first.

是否有避免此错误的简短形式,或者我必须在之前恢复内容布局并删除他们的所有视图?谢谢

编辑 mFragment 代码:

public class mFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View result= inflater.inflate(R.layout.activity_main, container);
        return result;
    }

}
4

2 回答 2

3

在充气时尝试以下代码。

View result= inflater.inflate(R.layout.activity_main, container, false);

默认情况下,这将避免将视图添加到父级。通过使用另一种方法,它将默认添加一个父级。因此,当您尝试动态添加它时,它会抛出上述异常。

于 2012-08-24T11:45:03.537 回答
1

改变:

View result= inflater.inflate(R.layout.activity_main, container);

到:

View result= inflater.inflate(R.layout.activity_main, container, false);
于 2012-08-24T11:43:15.910 回答