【发布时间】:2013-08-18 17:13:01
【问题描述】:
我创建了一个包含三个选项卡的选项卡应用程序。我有一个线性布局,这对于三个选项卡很常见。如果我在所有三个选项卡的顶部添加此线性布局,则第一个选项卡显示线性布局。但我在第二个和第三个选项卡中收到以下错误。
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
如果我删除子装置,其他选项卡会受到影响。如何在没有xml布局的情况下在java代码中多次重用linearlayout。
编辑 1:
LinearLayout layout = new LinearLayout(this);
LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
ll.gravity = Gravity.CENTER_HORIZONTAL;
final AdView adView = new AdView(this, AdSize.SMART_BANNER, "/6253334/dfp_example_ad");
layout.addView(adView);
adView.loadAd(new AdRequest());
我需要在所有三个标签中使用此广告布局。
编辑 2:
我使用以下代码来创建标签内容。
public FrameLayout createTabContent()
{
FrameLayout layout = new FrameLayout(sMainContext);
FrameLayout.LayoutParams layoutparams=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT,Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
layout.setForegroundGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
layout.setLayoutParams(layoutparams);
mWebView=new WebView(sMainContext);
mWebView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT));
LinearLayout adlayout = new LinearLayout(sMainContext);
adLayout = (LinearLayout) (commonAdLayout);
layout.addView(mWebView);
layout.addView(adlayout);
return layout;
}
commonLayout 是从 EDIT 1 创建的。
【问题讨论】:
标签: android android-linearlayout reusability