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

后端 未结 3 675
礼貌的吻别
礼貌的吻别 2020-12-01 14:44

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 dynamical

相关标签:
3条回答
  • 2020-12-01 15:09

    Create another button:

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

    Add add it into your RelativeLayout:

    rLayout.addView(tv2); 
    
    0 讨论(0)
  • 2020-12-01 15:19

    Add the rule RelativeLayout.RIGHT_OF for the second added 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);
    
    0 讨论(0)
  • 2020-12-01 15:20

    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);
    
    0 讨论(0)
提交回复
热议问题