在定位android动态加载按钮时遇到麻烦



我在类中动态创建按钮,我尝试使用'offsetLeftAndRight()'或'来定位它们。leftMargin' and '。,

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

但是按钮总是停留在左上角,我怎么能定位它,我做错了什么?

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

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

检索对它的引用
myRelativeLayout = (RelativeLayout) this.findViewById(R.id.itsId)

然后添加你的按钮到这个布局:

myRelativeLayout.addView(myButton);

你的按钮的布局参数似乎很好定位,所以它应该工作。

设置按钮的外边距而不是布局

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

试试这样:

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

最新更新