【问题标题】:The specified child already has a parent指定的孩子已经有一个父母
【发布时间】:2013-05-13 07:32:10
【问题描述】:

我不知道发生了什么。我的代码崩溃了,我找不到原因。

我有一个 LinearLayout,它是几个 WebView 的容器。

LinearLayout variableContent = (LinearLayout) this.findViewById(R.id.variableContent);
for (int i=0; i<5;i++){
    XMLModule modul = modulsRecuperats.get(i);
    myWebView webview = new myWebView(this);
    WebView customWebViewContainer = (WebView) this.mInflater.inflate(R.layout.customwebview, null);
    customWebViewContainer = webview._clientSettings(customWebViewContainer,progressDialog);
    customWebViewContainer.loadData(modul.getContent(), "text/html", "UTF-8");
    variableContent.addView(customWebViewContainer);
}

调用 addView 时代码会崩溃。出现此错误:

引起:java.lang.IllegalStateException:指定的孩子已经有一个父母。您必须先在孩子的父母上调用 removeView()。

我找不到原因。你能帮帮我吗?

【问题讨论】:

  • 看起来你的 variableContent 已经有一些内容了。你可以做一个 variableContent.removeView() 然后调用 for 循环。
  • 但这没有任何意义,因为线性布局是可以包含多个孩子的布局......

标签: android android-webview


【解决方案1】:

问题是customWebViewContainer 已经有一个父级。 View 不能有 2 个父母,因此会引发此异常。我只能假设对webview._clientSettings() 的调用正在用另一个容器包装该视图。

【讨论】:

    【解决方案2】:

    能否请您发布课程“myWebView”?特别是需要方法 _clientSettings 以便我们知道那里发生了什么。

    【讨论】:

      猜你喜欢
      • 2017-05-21
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多