两个视图的交换位置

时间:2012-07-12 18:52:41

标签: android

在我的活动中有两种观点。两人都是不同的父母。我有他们关于屏幕的坐标。如何交换两个视图的位置?

2 个答案:

答案 0 :(得分:4)

您需要为两个视图调用父ViewGroup方法removeView(),然后addView()将它们添加回来,但需要交换器。

因此,如果你的父母观点被称为妈妈和爸爸,那么一个人有一个名为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方法的更多信息,并查看其他可用方法。

答案 1 :(得分:0)

试试这个:

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

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

您还可以考虑动画效果,使其看起来很漂亮。