드래그 앤 드롭 사용

Android 드래그 앤 드롭 프레임워크를 사용하면 앱에 대화형 드래그 앤 드롭 기능을 추가할 수 있습니다. 드래그 앤 드롭을 사용하면 사용자는 텍스트, 이미지, 객체 및 URI로 나타낼 수 있는 모든 콘텐츠를 앱 내 하나의 View에서 다른 View로 또는 멀티 윈도우 모드에서 앱 간에 복사하거나 이동할 수 있습니다.

앱 내에서 드래그 앤 드롭 중인 텍스트 문자열과 이미지 화면 분할 모드에서 앱 간에 드래그 앤 드롭 중인 텍스트 문자열과 이미지
그림 1. 앱 내에서 드래그 앤 드롭
그림 2. 앱 간에 드래그 앤 드롭하기

프레임워크에는 드래그 이벤트 클래스, 드래그 리스너, 도우미 클래스와 메서드가 포함됩니다. 기본적으로 데이터 전송을 사용 설정하도록 설계되었지만 다른 UI 작업에도 프레임워크를 사용할 수 있습니다. 예를 들어 사용자가 색상 아이콘을 다른 아이콘 위로 드래그하면 색상을 혼합하는 앱을 만들 수 있습니다. 하지만 이 문서의 나머지 부분에서는 데이터 전송과 관련된 드래그 앤 드롭 프레임워크를 설명합니다.

개요

드래그 프로세스에는 몇 가지 요소가 있습니다.

  1. 드래그 소스: 드래그 앤 드롭 프로세스의 시작 시점입니다.

  2. 드롭 타겟: 드래그 데이터를 허용할 수 있는 뷰입니다.

  3. 드래그 그림자: 드래그 그림자는 드래그되는 데이터를 표현하며 사용자에게 표시됩니다.

  4. 드래그 이벤트: 사용자가 앱 레이아웃 위로 드래그 섀도우를 이동하면 시스템에서 레이아웃의 View 객체와 연결된 드래그 이벤트 리스너 및 콜백 메서드로 드래그 이벤트를 전송합니다.

드래그 앤 드롭 작업은 사용자가 앱에서 데이터 드래그를 시작하는 신호로 인식하는 UI 동작을 할 때 시작됩니다. 이에 대한 응답으로 앱은 시스템에 드래그 앤 드롭 작업이 시작됨을 알립니다. 시스템은 앱을 다시 호출하여 드래그 섀도우를 가져오고 드래그 앤 드롭 프로세스 중에 사용자에게 표시합니다.

사용자가 앱 레이아웃 위로 드래그 섀도우를 이동하면 시스템에서 레이아웃의 View 객체와 연결된 드래그 이벤트 리스너 및 콜백 메서드로 드래그 이벤트를 전송합니다. 사용자가 드롭 타겟 위에 드래그 섀도우를 놓으면 시스템은 타겟으로 데이터를 전송합니다. 드래그 앤 드롭 작업은 드래그 섀도우가 드롭 타겟 위에 있는지와 관계없이 사용자가 드래그 섀도우를 놓으면 종료됩니다.

주제

주요 개념
드래그 앤 드롭 프로세스 이해하기
간소화된 드래그 앤 드롭을 위한 DropHelper
DropHelper로 드래그 앤 드롭을 구현하는 방법을 알아보세요.
View로 드래그 앤 드롭 구현
또는 Android 뷰로 드래그 앤 드롭을 구현하면 개발자가 세부정보를 더 세밀하게 제어할 수 있습니다.
멀티 윈도우 모드에서 드래그 앤 드롭
멀티 윈도우 모드에서 드래그 앤 드롭을 지원하고 객체를 여러 애플리케이션 간에 이동할 수 있습니다.