我会尽我所能解释我的问题。
我有两个线性布局。每个都有一个imageview。
我正在玩拖放属性。一个 imageview (A) 有一个onTouchListener,另一个 (B) 有一个onDragListener。
当我将视图 A 放入视图 BI 时,执行以下代码:
public boolean onDrag(View imagen_blanca, DragEvent dragEvent) {
int dragAction = dragEvent.getAction();
if (dragAction == DragEvent.ACTION_DROP) {
switch (dragEvent.getAction()){
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DRAG_EXITED:
break;
case DragEvent.ACTION_DROP:
View imagen_desplazada = (View) dragEvent.getLocalState();
ViewGroup papa_blanca = (ViewGroup) imagen_blanca.getParent();
ViewGroup papa_desplazada = (ViewGroup) imagen_desplazada.getParent();
papa_blanca.removeView(imagen_blanca);
papa_desplazada.removeView(imagen_desplazada);
papa_blanca.addView(imagen_desplazada);
papa_desplazada.addView(imagen_blanca);
imagen_desplazada.setVisibility(View.VISIBLE);
break;
}
}
return true;
}
我想做什么? 我得到两个线性布局(papa_blanca 和 papa_desplazada),每个都持有一个 imageview。我把他的孩子从每个人身上移开。我添加了一个新孩子。
当我移动一次时它会起作用。我的意思是:当我把 A 放在 B 上时,他们改变了他的父亲。
我的问题来了。当我尝试在 B 上再次移动 A 以获得错误出现的原始位置时: