您需要addView()
在主布局上调用。一旦构建了主布局(包含所有其他布局),该addView()
方法将向现有的主布局添加新视图。
要添加新布局,您需要先对其进行充气。
LinearLayout primaryLayout;
LayoutInflater layoutInflater = (LayoutInflater)this.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
LinearLayout newLayout = (LinearLayout)layoutInflater.inflate(R.layout.your_new_layout, null, false);
primaryLayout.addView(newLayout);
AddView 还提供了一个索引选项,用于将新布局放置在主布局中的特定点。
尝试从一个空白的 XML 布局开始(比如称为 primary_layout):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/primaryLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>
然后,当您的活动开始时,首先设置它,然后根据需要充气并添加:
setContentView(R.layout.primary_layout);
LinearLayout primaryLayout = (LinearLayout) findViewById(R.id.primaryLayout);
然后,您可以将新视图添加到该视图中。至于多次添加,我相信是通过引用完成的,所以它只看到一个视图。尝试在方法中构建视图,然后返回视图。如:
private View buildNewView(){
LayoutInflater layoutInflater = (LayoutInflater)this.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
LinearLayout newView = (LinearLayout)layoutInflater.inflate( R.layout.my_new_view null, false );
return newView ;
}
并通过调用它primaryLayout.addView(buildNewView();
。