relativelayout运行时中的位置视图

时间:2011-12-12 16:05:32

标签: android relativelayout

我想为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工作得很好..视图保持在我的手指。 但是startpostion总是0,0 ...我的x和y是什么并不重要。

任何想法的人?

2 个答案:

答案 0 :(得分:6)

我有一个解决方法。

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来定位浮动视图并不好。但它适用于我。

答案 1 :(得分:1)

在将按钮添加到父视图之前,您可能需要尝试设置按钮的位置。所以只需交换这两行:

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