私の問題をできる限り説明します。
私は 2 つの線形レイアウトを持っています。それぞれにimageviewがあります。
ドラッグ アンド ドロップ プロパティで遊んでいます。1 つのイメージビュー (A) にはonTouchListenerがあり、別のイメージビュー (B) にはonDragListenerがあります。
View A を View 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;
}
私は何をしようとしていますか? それぞれイメージビューを保持する 2 つの線形レイアウト (papa_blanca と papa_desplazada) を取得します。私は彼の子供をそれぞれから取り除きます。新しい子を追加します。
一度動くと効きます。つまり、私が A を B に落とすと、彼らは彼の父親を変えます。
私の問題はここにあります。エラーが発生する元の位置を取得するために B で A を再度移動しようとすると、次のようになります。