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

AddContentView()不是在已设置的布局中添加视图的正确方法。

使您的主布局成为RelativeLayout(在instruct.xml 布局文件中检查)使用它的id 在您的onCreate()方法中使用它来检索对它的引用

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

然后将您的按钮添加到此布局中:

myRelativeLayout.addView(myButton);

您的按钮的布局参数似乎可以很好地定位,因此它应该可以工作。

于 2013-02-28T15:48:08.267 回答
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

尝试这样的事情:

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