0

私のアプリには、写真を2列に表示したグリッドビューの画面があります。ドラッグ エンド ドロップで写真を並べ替える機能を追加したいと考えています。私はAndroid 4.0を使用しており、Androidネイティブのドラッグアンドドロップを使用しました:

http://developer.android.com/guide/topics/ui/drag-drop.html

だから、私はすでにドラッグ&ドロップ機能を追加していますが、問題は、ユーザーが一番上の画像を一番下にドラッグしようとしたときにグリッドビューをスクロールする必要があることです。SmoothSctollTo() メソッドを使用してプログラムで gridView をスクロールすることは問題ではありませんが、アイテムをドラッグするときに、画面の下部に指があるかどうかを確認する必要があります。問題はそれです:

    @Override
    public boolean onDrag(final View v, final DragEvent event) {
        Log.v("Coordinates", " " + v.getY());
        switch (event.getAction()) {
        case DragEvent.ACTION_DRAG_STARTED:
            break;
        case DragEvent.ACTION_DRAG_ENTERED:
            break;
        case DragEvent.ACTION_DRAG_EXITED:
            break;
        case DragEvent.ACTION_DROP:
            break;
        case DragEvent.ACTION_DRAG_ENDED:
            break;
        default:
            break;
        }
        return true;
    }
};

このすべてのイベントは、1 つの gridview アイテムが別のアイテムと交差する場合にのみ呼び出されます。しかし、アイテムをきれいな gridView スペースにドラッグすると、ドラッグ時に呼び出されません。アイテムをドラッグしたときに指の座標を取得するには?

4

2 に答える 2

1

DraggableGridViewまたはPagedDragDropGridのいずれかを実装できます。どちらもこの問題を処理します。

編集: これは GridView を直接拡張する新しいライブラリです: https://github.com/askerov/DynamicGrid

于 2013-03-15T15:27:08.833 に答える
0

私がAndroidについて知っていることから、スクロールしたいビューにOnTouchListenerをセットアップすることをお勧めします.

于 2013-03-15T14:50:18.043 に答える