如何dynamic添加视图到已经在xml布局中声明的RelativeLayout?

我在xml布局文件中声明了一个RelativeLayout 。 现在我想从代码添加Views到现有的布局。 我通过代码dynamic地将一个Button添加到这个现有的布局如下:

 rLayout = (RelativeLayout)findViewById(R.id.rlayout); LayoutParams lprams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); Button tv1 = new Button(this); tv1.setText("Hello"); tv1.setLayoutParams(lprams); tv1.setId(1); rLayout.addView(tv1); 

现在我需要在已经添加的Button的右边添加另一个Button 。 我无法find可以将新的button添加到之前添加的button右侧的方式。

Solutions Collecting From Web of "如何dynamic添加视图到已经在xml布局中声明的RelativeLayout?"

为第二个添加的Button LayoutParams添加规则RelativeLayout.RIGHT_OF

  // first Button RelativeLayout rLayout = (RelativeLayout) findViewById(R.id.rlayout); RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); Button tv1 = new Button(this); tv1.setText("Hello"); tv1.setLayoutParams(lprams); tv1.setId(1); rLayout.addView(tv1); // second Button RelativeLayout.LayoutParams newParams = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); Button tv2 = new Button(this); tv1.setText("Hello2"); newParams.addRule(RelativeLayout.RIGHT_OF, 1); tv2.setLayoutParams(newParams); tv2.setId(2); rLayout.addView(tv2); 

可能是这个可以帮助你,试试吧。

 rLayout = (RelativeLayout)findViewById(R.id.rlayout); LayoutParams lprams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); TableLayout tl=new TableLayout(this); rLayout.addView(tl); TableRow tr1=new TableRow(this); tl.addView(tr1); Button btn1 = new Button(this); btn1.setText("Hello"); btn1.setLayoutParams(lprams); btn1.setId(1); tr1.addView(btn1); TextView tv1 = new TextView(this); tv1.setWidth(40); tv1.setHeight(LayoutParams.WRAP_CONTENT); tr1.addView(tv1); Button btn2 = new Button(this); btn2.setText("World"); btn2.setLayoutParams(lprams); btn2.setId(2); tr1.addView(btn2); 

创build另一个button:

 Button tv2 = new Button(this); tv2.setText("World"); tv2.setLayoutParams(lprams); tv2.setId(2); 

添加到你的RelativeLayout:

 rLayout.addView(tv2);