[英]position view in relativelayout runtime
我想将视图添加到relativelayout。 该视图必须添加到指定位置。
我有这个:
int x = ...;
int y = ...;
button.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getRawX();
int y = (int) event.getRawY();
v.layout(x, y, x + v.getWidth(), y + v.getHeight());
return true;
}
});
relativelayout.addView(button);
button.layout(x, y, x + button.getWidth(), y + button.getHeight());
ontouchlistener效果很好。 但是起始位置始终为0、0 ... x和y是什么都无关紧要。
任何人的想法?
我有一个解决方法。
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp.leftMargin = x;
lp.topMargin = y;
relativelayout.addView(tmpTextButtonView, lp);
使用margin定位浮动视图不是很好。 但是它对我有用。
您可能需要尝试设置按钮的位置,然后再将其添加到父视图。 因此,只需交换这两行:
relativelayout.addView(button);
button.layout(x, y, x + button.getWidth(), y + button.getHeight());
是这样的:
button.layout(x, y, x + button.getWidth(), y + button.getHeight());
relativelayout.addView(button);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.