在我的活动中有两种观点。两人都是不同的父母。我有他们关于屏幕的坐标。如何交换两个视图的位置?
答案 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);
您还可以考虑动画效果,使其看起来很漂亮。