Android 两个view互换位置
时间: 2023-08-04 14:25:50 浏览: 98
要在 Android 上交换两个视图的位置,可以使用 View 类的以下方法:
1. `ViewGroup.indexOfChild(View child)`:获取给定子视图在父视图中的索引位置。
2. `ViewGroup.removeView(View view)`:从父视图中删除给定的子视图。
3. `ViewGroup.addView(View child, int index)`:将给定的子视图添加到指定的索引位置。
以下是一个示例代码段,可以将其添加到你的 Android 应用中,交换两个视图的位置:
```
//获取两个要交换位置的视图
View view1 = findViewById(R.id.view1);
View view2 = findViewById(R.id.view2);
//获取两个视图在父视图中的索引位置
int index1 = ((ViewGroup) view1.getParent()).indexOfChild(view1);
int index2 = ((ViewGroup) view2.getParent()).indexOfChild(view2);
//从父视图中删除两个视图
((ViewGroup) view1.getParent()).removeView(view1);
((ViewGroup) view2.getParent()).removeView(view2);
//将两个视图添加到对方原本的位置
if (index1 < index2) {
((ViewGroup) view2.getParent()).addView(view1, index2);
((ViewGroup) view1.getParent()).addView(view2, index1);
} else {
((ViewGroup) view1.getParent()).addView(view2, index1);
((ViewGroup) view2.getParent()).addView(view1, index2);
}
```
这段代码将获取两个要交换位置的视图,并使用 `indexOfChild()` 方法获取它们在父视图中的索引位置。然后,使用 `removeView()` 方法从父视图中删除这两个视图。最后,使用 `addView()` 方法将这两个视图添加到对方原本的位置,以完成视图位置的交换。