4

プログラムで相対レイアウトに2つのボタンを作成しました。ボタンの間にマージンスペースが必要ないので、「setmargin」を使用してこれを実現しようとしましたが、失敗しました。以下はコードです。

//creating the relative layout
  RelativeLayout relativeLayout = new RelativeLayout(this);
  RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.MATCH_PARENT,
            RelativeLayout.LayoutParams.MATCH_PARENT);   
//creating buttons
    Button button1 = new Button(this);
    button1.setId(R.id.button1);
    RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(
            SCR_W/2,
            RelativeLayout.LayoutParams.WRAP_CONTENT);//SCR_W is the device screenwidth
    params1.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    params1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    params1.setMargins(0, 0, 0, 0);
    button1.setLayoutParams(params1);
    relativeLayout.addView(button1);  

    Button button2 = new Button(this);
    button2.setId(R.id.button2);
    RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
            SCR_W/2,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    params2.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    params2.addRule(RelativeLayout.BELOW, button1.getId());
    params2.setMargins(0, 0, 0, 0);
    button2.setLayoutParams(params2);
    relativeLayout.addView(button2);

//setting the relative layout as the contentview
     setContentView(relativeLayout, rlp);

前もって感謝します..

4

3 に答える 3

2

私はあなたのコードを試しました、そして私には大丈夫です、

2つのボタンは距離0にあります。確認するには、各ボタンに異なる色を設定するだけで、それらが一緒になっていることがわかります。

button1.setBackgroundColor(Color.BLUE);
button2.setBackgroundColor(Color.RED);
于 2013-02-04T10:12:26.833 に答える
0

相対レイアウトの高さを.に設定してみてくださいwrap_content

 RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.MATCH_PARENT,
        RelativeLayout.LayoutParams.WRAP_CONTENT); 
于 2013-02-04T10:06:00.380 に答える
0

このようなものを試してみてください、それはうまくいくでしょう-:

 params1.setMargins(0, 0, 0, -5);
 params2.setMargins(0, -5, 0, 0);
于 2013-02-04T10:25:07.180 に答える