指定的孩子已经有父错误

时间:2015-04-24 10:45:34

标签: android

我收到此错误

  

指定的孩子已经有父母。你必须调用removeView()   先关于孩子的父母

这是代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.categorylayout);

    LinearLayout main = (LinearLayout)findViewById(R.id.main_layout);
    View view = getLayoutInflater().inflate(R.layout.categoryeditor, main, true);
    main.addView(view);
}

我收到此错误是因为我在这里传递了true

inflate(R.layout.categoryeditor, main, true);  

我的问题:

The specified child already has a parent父母在哪里?

4 个答案:

答案 0 :(得分:3)

  View view = getLayoutInflater().inflate(R.layout.categoryeditor, main,true);

您通过最后两个参数提供了父母。传递true会告诉Android将夸大的视图添加到main。所以你可以摆脱

  main.addView(view);

另请注意,在您的情况下,返回的View不是膨胀的astype,而是其父级

答案 1 :(得分:0)

替换

View v = inflater.inflate(R.layout.camera_fragment, main, true);

使用

View v = inflater.inflate(R.layout.camera_fragment, main, false);

答案 2 :(得分:0)

您的主要观点是家长。在这种情况下,您的最后一个参数告诉附加到父

View view = getLayoutInflater().inflate(R.layout.categoryeditor, main,true);

答案 3 :(得分:0)

请阅读该方法的文档

<强>参数: 要加载的XML布局资源的资源ID (例如,R.layout.main_page)

root 可选视图是生成的层次结构的父级(如果attachToRoot为true),或者只是为返回的层次结构的根提供一组LayoutParams值的对象(如果attachToRoot是假的。)

attachToRoot 是否应将膨胀的层次结构附加到根参数?如果为false,则root仅用于为XML中的根视图创建LayoutParams的正确子类。