1

クラスで動的にボタンを作成しています。次のように、「offsetLeftAndRight()」または「.leftMargin」と「.topMargin」を使用してボタンを配置しようとしています。

public class instruction extends Activity {

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.instruct);
    final Button btn = new Button(this);

    RelativeLayout.LayoutParams paramsd2 = 
        new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    paramsd2.leftMargin = 500;
    paramsd2.topMargin = 500;


    paramsd2.height = 60;
    paramsd2.width = 200;

    btn.offsetLeftAndRight(300);

    btn.setLayoutParams(paramsd2);
    addContentView(btn, paramsd2);

}

しかし、ボタンは常に左上隅にあります。どうすれば配置できますか?何が間違っていますか?

4

3 に答える 3

0

レイアウトではなくボタンにマージンを設定する

 MarginLayoutParams marginParams = new MarginLayoutParams(backToMainScreenImageView.getLayoutParams());
marginParams.setMargins(0, 0, (int) UIUtil.getRadialButtonMainMargin(this), 0);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
backToMainScreenImageView.setLayoutParams(layoutParams);
于 2013-02-28T16:20:16.950 に答える
0

AddContentView()既に設定されているレイアウトにビューを追加する適切な方法ではありません。

メイン レイアウトを RelativeLayout にします (instruct.xml レイアウト ファイルでこれを確認してください)。その ID を使用して、onCreate()メソッドで参照を取得します。

myRelativeLayout = (RelativeLayout) this.findViewById(R.id.itsId)

次に、このレイアウトにボタンを追加します:

myRelativeLayout.addView(myButton);

ボタンのレイアウトパラメータは配置に適しているように見えるので、うまくいくはずです。

于 2013-02-28T15:48:08.267 に答える
0

このようなことを試してください:

paramsd2.setMargin(500, 500, 0, 0);
btn.setLayoutParams(paramsd2);
于 2013-02-28T17:28:17.507 に答える