我正在我的班级中动态创建按钮,我尝试使用'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);
}
但按钮始终位于左上角,我如何定位,我做错了什么?
答案 0 :(得分:0)
AddContentView()
不是在已设置的布局中添加视图的正确方法。
使您的主布局成为RelativeLayout(在instruct.xml布局文件中检查)
使用其ID在onCreate()
方法中使用
myRelativeLayout = (RelativeLayout) this.findViewById(R.id.itsId)
然后将按钮添加到此布局:
myRelativeLayout.addView(myButton);
你的按钮的布局参数似乎很适合定位所以它应该有用。
答案 1 :(得分: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);
答案 2 :(得分:0)
尝试这样的事情:
paramsd2.setMargin(500, 500, 0, 0);
btn.setLayoutParams(paramsd2);