Просмотр позиции в относительном времени выполнения

Я хочу добавить вид в относительное расположение. этот вид должен быть добавлен в указанную позицию.

у меня есть это:

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

Сенсорный сенсор работает отлично... вид остается с моим пальцем. однако начальное положение всегда равно 0, 0... не имеет значения, какие у меня x и y.

кто-нибудь идея?

2 ответа

У меня есть обходной путь.

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

не очень хорошо использовать поле для позиционирования плавающих видов. Однако это работает для меня.

Возможно, вы захотите попробовать установить положение вашей кнопки, прежде чем добавить ее в родительский вид. Так что просто поменяйте местами эти две строки:

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);
Другие вопросы по тегам