我需要在运行时根据点击按钮动态地为我的活动添加“模板”布局。
下面的代码块中显示的是我的布局的简化版本。 HEADER C的内容(即BODY C1,BODY C2 ... BODY Cn)是需要在运行时添加的组件。它们都具有相同的格式,并在具有相对布局的单独xml文件中定义。我该如何完成这项任务?我尝试了LayoutInflater,但没有成功。 LayoutInflater是否需要LinearLayout来膨胀?
<SCROLLVIEW>
<RELATIVE_LAYOUT>
____________
HEADER A
____________
BODY A
</RELATIVE_LAYOUT>
<RELATIVE_LAYOUT>
____________
HEADER B
____________
BODY B
</RELATIVE_LAYOUT>
<RELATIVE_LAYOUT>
____________
HEADER C
____________
BODY C1
____________
BODY C2
.
.
.
____________
BODY Cn
<RELATIVE_LAYOUT>
</SCROLLVIEW>
谢谢,任何指导表示赞赏!
答案 0 :(得分:1)
使用
View headerView = View.inflate(this, R.layout.class_name, null);
夸大你的布局。
答案 1 :(得分:1)
/**rootView represent the RelativeLayout*/
View headerView = LayoutInflater.from(context).inflater(R.layout.header_view, rootView, false);
rootView.add(headerView);
答案 2 :(得分:1)
你可以这样做:
general = (LinearLayout) findViewById(R.id.general_tab); // get the id of the layout you wish to add your view to
TextView programs = new TextView(this); // create a new view/widget to add
programs.setText("Program(s): " + prgdisp); // set the text
general.addView(programs); // add the new view/widget to the existing layout
修改强>
我错过了你已经有了xml布局。将上述内容更改为:
general = (LinearLayout) findViewById(R.id.general_tab); // get the id of the layout you wish to add your view to
View header = View.inflate(this, R.layout.class_name, null); // inflate your layout
general.addView(header); // add the new view/widget to the existing layout
答案 3 :(得分:1)
LinearLayout Parent = (LinearLayout) findViewById(R.id.linearLayout);
View child = getLayoutInflater().inflate(R.layout.main_new,null);
Parent.addView(child);