本文首要叙述怎么动态给UI界面增加布局和控件,在编程的时分许多时分需求动态显示一些内容,在动态增加View的时分,首要运用addView办法。
1. addView办法简介
在Android 中,能够运用排版View的 addView 函数,将动态发生的View 物件加入到排版View 中。
比如如下:
Activity代码:
public class helloWorld extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.main );
// 获得LinearLayout 物件
LinearLayout ll = (LinearLayout)findViewById(R.id.viewObj);
// 将TextView 加入到LinearLayout 中
TextView tv = new TextView(this);
tv.setText(Hello World);
ll. addView ( tv );
// 将Button 1 加入到LinearLayout 中
Button b1 = new Button(this);
b1.setText(撤销);
ll. addView ( b1 );
// 将Button 2 加入到LinearLayout 中
Button b2 = new Button(this);
b2.setText(确认);
ll. addView ( b2 );
// 从LinearLayout 中移除Button 1
ll. removeView ( b1 );
}
}
上述代码的方位,是笔直顺序排列的由于界面代码Linerlayout的orientation设置的是vertical的,可是为了漂亮,需求设置增加的View的方位和款式。在增加View的时分分为两类来介绍,一种是布局(例如:Linearlayout等),一种是控件(例如:Button,TextView等等。)
2. 动态增加布局(包含款式和方位)
下面的比如将介绍怎么动态增加布局,基本内容和上面的代码共同,首要重视怎么操控增加的布局的方位。在操控布局的方位的时分运用LayoutParam类来完成。
比如:
界面代码和上面的界面代码类似,就不在重复介绍。
Activity类部分代码:
RelativeLayout rl = new RelativeLayout(this);
//设置RelativeLayout布局的宽高
RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
this.addView(rl, relLayoutParams);
3. 动态增加控件
动态增加控件和增加布局很类似,下述代码首要重视看操控控件的方位,下面的代码和第二项增加布局的弥补,在新增加的布局里边再增加控件。
界面代码相同不在重复。
Activity类部分代码:
RelativeLayout rl = new RelativeLayout(this);
//设置RelativeLayout布局的宽高
RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
TextView temp = new TextView(this);
temp .setId(1);
temp.setText(“图片”);
rl.addView(temp);
TextView tv = new TextView(this);
tv.setText(“文字”);
tv.setId(2);
LayoutParams param1 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
param1.addRule(RelativeLayout.BELOW, 1);//此控件在id为1的控件的下边
rl.addView(tv,param1);
Button update = new Button(this);
update.setText(Button);
LayoutParams param2 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
param2.addRule(RelativeLayout.RIGHT_OF, 1);//此控件在id为1的控件的右边
rl.addView(update,param2);
this.addView(rl, relLayoutParams);
留意:操控方位和款式的时分,布局和控件运用的办法是相同的。