GridView
Android(ICS)にドラッグアンドドロップを実装しようとしてitem
いますが、画面の端にドラッグするとGridView
スクロールしません。この機能を実装するにはどうすればよいですか?
1 に答える
まず、Android 2.x (API <11) をサポートする必要がない場合は、このAndorid ドラッグ アンド ドロップ チュートリアルをお探しください。2.xで実装する必要があったため、その方法を試したことはありませんが、非常に簡単に見えることを確認しました。
自動スクロールを実装するには、グリッド ビューでACTION_DRAG_EXITEDまたはACTION_DRAG_LOCATIONを使用し、場所がビューの境界の隣にあることがわかったら手動でスクロールを開始できると思います。
代わりに 2.x に実装する必要がある場合は、はるかに難しくなります。基本的に、すべての DRAG イベントまたはそれらのサブセットを自分で実装する必要があります。私は ListView で一度やりました。あなたがしなければならないことは次のとおりです。
- gridView touchEvent をオーバーライドします。
- アクション ACTION_MOVE、ACTION_DOWN、ACTION_UP を使用してドラッグ イベントを発生させます。
GridView アイテムの描画キャッシュを有効にし ( setDrawingCacheEnabled )、 getDrawingCache()を使用して、DRAG_START でビューのビットマップをコピーします。あなたがしなければならないことは、ACTION_MOVE イベントが与える位置で GridView の上に描画されたビットマップを使用することです。
簡単ではありませんが、時間をかければ、なんとか手に入れることができます。
さらに、今日はチェックしていませんが、誰かがそれを実装してオープンソースとしてリリースするのに時間がかかったかどうか、ちょっとググってみるといいかもしれません。