0

私の問題をできる限り説明します。

私は 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 を再度移動しようとすると、次のようになります。

4

1 に答える 1

0

できます!コードの別の部分にエラーがありました

于 2013-09-22T10:40:08.467 に答える