Android 如何将视图动态添加到xml布局中已声明的RelativeLayout?
我在xml布局文件中声明了一个Android 如何将视图动态添加到xml布局中已声明的RelativeLayout?,android,android-layout,android-widget,Android,Android Layout,Android Widget,我在xml布局文件中声明了一个RelativeLayout。现在我想将视图从代码添加到现有布局中。我通过代码向现有布局动态添加了一个按钮,如下所示: rLayout = (RelativeLayout)findViewById(R.id.rlayout); LayoutParams lprams = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); Button tv1
RelativeLayout
。现在我想将视图
从代码添加到现有布局中。我通过代码向现有布局动态添加了一个按钮
,如下所示:
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 tv2 = new Button(this);
tv2.setText("World");
tv2.setLayoutParams(lprams);
tv2.setId(2);
将其添加到您的RelativeLayout中:
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);
为第二个添加的按钮添加规则RelativeLayout.RIGHT\u
:
// 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);
如果我有许多动态按钮,倒数第二个按钮触碰边缘,会发生什么?最后一个会发生什么?它可能会被推到外面或被挤压。如果您知道将有许多按钮,而不需要在滚动视图
或水平滚动视图
中包装RelativeLayout
。如果在动态创建按钮时使用RelativeLayout,我怎么知道他什么时候触到了边缘?@zhelon使用Relativelayout
这样的布局会很复杂,如果这对您很重要,您可能需要实现自定义视图。