Android のドラッグ&ドロップ フレームワークを使用すると、インタラクティブなドラッグ&ドロップ
機能をアプリに追加できます。ドラッグ&ドロップを使用すると、ユーザーは、テキスト、
画像、オブジェクトなど、URI で表現できるすべてのコンテンツを、アプリ内の 1 つの
View から別の View に、またはマルチ ウィンドウ モードのときはアプリ間で、ドラッグできます。
|
|
|
|
|
このフレームワークには、ドラッグ イベント クラス、ドラッグ リスナー、ヘルパークラス、ヘルパー メソッドが含まれています。このフレームワークは、主にデータ転送を可能にするように設計されていますが、他の UI 操作にも使用できます。たとえば、ユーザーがカラーアイコンを別のアイコンにドラッグしたときに色を混ぜるアプリを作成できます。ただし、このドキュメントでは、データ転送におけるドラッグ&ドロップ フレームワークについて説明します。
概要
ドラッグ プロセスにはいくつかの要素が関わります。
ドラッグ元: ドラッグ&ドロップ プロセスの開始点ビュー。
ドロップ ターゲット: ドラッグデータを処理できるビュー。
ドラッグ シャドウ: ドラッグ シャドウ は、ドラッグされるデータの表現であり、ユーザーに表示されます。
ドラッグ イベント: ユーザーがアプリのレイアウト上にドラッグ シャドウを移動させると、レイアウト内の
Viewオブジェクトに関連付けられたドラッグ イベント リスナーやコールバック メソッドに、ドラッグ イベントが送信されます。
ドラッグ&ドロップ オペレーションは、アプリでデータのドラッグが開始されるシグナルとして認識される UI ジェスチャーをユーザーが行った時点で始まります。これに応じて、アプリはドラッグ&ドロップ オペレーションが開始されることをシステムに通知します。システムはアプリにコールバックしてドラッグ シャドウ を取得し、ドラッグ&ドロップ プロセス中にユーザーに表示します。
ユーザーがアプリのレイアウト上にドラッグ シャドウを移動させると、レイアウト内の View オブジェクトに関連付けられたドラッグ イベント リスナーやコールバック メソッドに、ドラッグ
イベントが送信されます。ユーザーがドロップ ターゲット上でドラッグ シャドウを解放すると、そのデータがシステムからターゲットに送信されます。ドラッグ シャドウがドロップ ターゲット上にあるかどうかにかかわらず、ユーザーがドラッグ シャドウを解放すると、ドラッグ&ドロップ オペレーションが終了します。
トピック
- 主なコンセプト
- ドラッグ&ドロップ プロセスについて説明します。
- ドラッグ&ドロップを簡単にする DropHelper
DropHelperを使用してドラッグ&ドロップを実装する方法を説明します。- ビューを使用してドラッグ&ドロップを実装する
- または、Android ビューを使用してドラッグ&ドロップを実装します。これにより、デベロッパーは詳細をより細かく制御できます。
- マルチウィンドウ モードでのドラッグ&ドロップ
- マルチウィンドウ モードでのドラッグ&ドロップをサポートし、オブジェクトを異なるアプリケーション間で移動できるようにします。
参考情報
- ビューを使用したドラッグ&ドロップの Codelab
- シームレスなマルチタスクを実現するドラッグ&ドロップの動画
- ドラッグ&ドロップのサンプル。リッチメディアの受け入れとともに、ドラッグ&ドロップを実装するさまざまな方法が含まれています。