在我的活动中有两种观点。两者都在不同的父母。我有他们相对于屏幕的坐标。如何交换两个视图的位置?
问问题
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);
阅读ViewGroup的参考以获取有关 removeView 和 addView 方法的更多信息,并查看其他可用方法。
于 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 回答