1

私の活動には 2 つのビューがあります。どちらも別の親です。画面に対する座標があります。2 つのビューの位置を交換するにはどうすればよいですか?

4

2 に答える 2

4

removeView()両方のビューの親 ViewGroup メソッドを呼び出してaddView()から、それらを元に戻して交換する必要があります。

したがって、親ビューが mommy と daddy と呼ばれる場合、一方には foo と呼ばれる子があり、もう一方には bar と呼ばれる子があります。

ViewGroup daddy = (ViewGroup)findViewById(R.id.daddy);
ViewGroup mommy = (ViewGroup)findViewById(R.id.mommy);

View foo = findViewById(R.id.foo);
View bar = findViewById(R.id.bar);

//detach children

daddy.removeView(foo);
mommy.removeView(bar);

//re-attach children

daddy.addView(bar);
mommy.addView(foo);

removeView メソッドと addView メソッドの詳細、およびその他の使用可能なメソッドについては、ViewGroupリファレンスを参照してください。

于 2012-07-12T19:14:09.717 に答える
0

これを試して:

int x1 = view1.getX();
int y1 = view1.getY();

view1.setX(view2.getX());
view1.setY(view2.getY());
view2.setX(x1);
view2.setY(y1);

見栄えを良くするために、アニメーション効果を検討することもできます。

于 2012-07-12T19:07:03.887 に答える