Android 如何将视图动态添加到已在 xml 布局中声明的 RelativeLayout?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10666019/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to add views dynamically to a RelativeLayout already declared in the xml layout?
提问by user1276092
I declared a RelativeLayout
in a xml layout file. Now I want to add Views
from code to the existing Layout. I added a Button
dynamically to this existing layout as below through code:
我RelativeLayout
在 xml 布局文件中声明了a 。现在我想Views
从代码添加到现有的布局。我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);
Now I need to add another Button
to the right of the already added Button
. I am not able to find the way in which I can add the new one to the right of the previously added button.
现在我需要Button
在已经添加的Button
. 我无法找到将新按钮添加到先前添加的按钮右侧的方法。
回答by Luksprog
Add the rule RelativeLayout.RIGHT_OF
for the second added Button
LayoutParams
:
添加RelativeLayout.RIGHT_OF
第二个添加的规则Button
LayoutParams
:
// 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);
回答by user1208720
may be this can help you, try it.
也许这可以帮助你,试试吧。
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);
回答by rizzz86
Create another button:
创建另一个按钮:
Button tv2 = new Button(this);
tv2.setText("World");
tv2.setLayoutParams(lprams);
tv2.setId(2);
Add add it into your RelativeLayout:
添加将其添加到您的 RelativeLayout 中:
rLayout.addView(tv2);