2013-02-28 63 views
1

我在我的课创建按钮的动态,我尝试使用“offsetLeftAndRight()”或“.leftMargin'和” .topMargin'如下放置它们,遇到问题定位的Android动态加载按钮

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); 

} 

但按钮始终停留在左上角,我该如何定位它,我做错了什么?

+0

注意,要设置两倍的宽度和你的按钮的高度:在您设置的LayoutParams构造它到WRAP_CONTENT,WRAP_CONTENT,然后再将它设置为60,200。 – Guian 2013-02-28 15:49:59

回答

0

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

让您的主要布局的RelativeLayout(在instruct.xml布局文件检查) 使用其ID使用

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

onCreate()方法中检索它的引用那么你的按钮添加到这个布局:

myRelativeLayout.addView(myButton); 

你的按钮的布局参数看起来很好,因此它应该工作。按钮

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); 
0

尝试是这样的:

paramsd2.setMargin(500, 500, 0, 0); 
btn.setLayoutParams(paramsd2);