16

RelativeLayoutxml レイアウト ファイルで 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); 

Buttonここで、既に追加された の右側に別の を追加する必要がありButtonます。以前に追加したボタンの右側に新しいボタンを追加する方法が見つかりません。

4

3 に答える 3

23

RelativeLayout.RIGHT_OF2 番目に追加された のルールを追加し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);
于 2012-05-19T15:00:19.977 に答える
1

これはあなたを助けることができるかもしれません、試してみてください。

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);
于 2012-05-19T14:45:15.100 に答える
0

別のボタンを作成します。

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

RelativeLayout に追加します。

rLayout.addView(tv2); 
于 2012-05-19T14:33:48.133 に答える