简体   繁体   English

如何动态地将视图添加到已在xml布局中声明的RelativeLayout?

[英]How to add views dynamically to a RelativeLayout already declared in the xml layout?

I declared a RelativeLayout in a xml layout file. 我在xml布局文件中声明了RelativeLayout Now I want to add Views from code to the existing Layout. 现在我想将代码中的Views添加到现有布局中。 I added a Button dynamically to this existing layout as below through code: 我通过代码动态地向现有布局添加了一个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 . 现在我需要另一个添加Button到已经添加的右侧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. 我无法找到我可以在之前添加的按钮右侧添加新的方式。

Add the rule RelativeLayout.RIGHT_OF for the second added Button LayoutParams : 为第二个添加的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);

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);

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); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM