/ / Positionsansicht in relativelayout-Laufzeit - Android, relativelayout

Positionsansicht in relativer Laufzeit - Android, Relativlayout

Ich möchte eine Ansicht zu einem relativen Layout hinzufügen. Diese Ansicht muss an einer bestimmten Position hinzugefügt werden.

ich habe das:

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

der onuchlistener funktioniert super .. der blick bleibt mit dem finger. die startpostion ist jedoch immer 0, 0 ... es ist egal was mein x und y ist.

jemand eine idee?

Antworten:

6 für die Antwort № 1

Ich habe eine Problemumgehung.

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

Es ist nicht ideal, einen Rand zum Positionieren von schwebenden Ansichten zu verwenden. aber es funktioniert für mich.


1 für die Antwort № 2

Sie können versuchen, die Position Ihrer Schaltfläche festzulegen, bevor Sie sie der übergeordneten Ansicht hinzufügen. Also tauschen Sie einfach diese beiden Zeilen:

relativelayout.addView(button);
button.layout(x, y, x + button.getWidth(), y + button.getHeight());

um das zu sein:

button.layout(x, y, x + button.getWidth(), y + button.getHeight());
relativelayout.addView(button);