/ / view view в относително време на изпълнение - 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 работи страхотно .. гледката остава с пръста ми. но началната позиция винаги е 0, 0 ... няма значение какво е моето x и y.

някой идее?

Отговори:

6 за отговор № 1

имам заобиколно решение.

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

не е чудесно да се използва марж за позициониране на плаващи изгледи. въпреки това работи за мен.


1 за отговор № 2

Може да опитате да зададете позицията на бутона, преди да го добавите към родителския изглед. Затова просто разменете тези две линии:

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