私の活動には 2 つのビューがあります。どちらも別の親です。画面に対する座標があります。2 つのビューの位置を交換するにはどうすればよいですか?
質問する
898 次
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 に答える