Включить перетаскивание

Попробуйте Compose
Jetpack Compose – это рекомендуемый набор инструментов для создания пользовательского интерфейса в Android. Узнайте, как использовать перетаскивание в Compose.

Фреймворк Android позволяет добавлять в приложение интерактивные функции перетаскивания. С их помощью пользователи могут копировать или перемещать текст, изображения, объекты и любой контент, который можно представить в виде URI, из одного элемента View в другой в пределах приложения или между приложениями в многооконном режиме.

Текстовая строка и изображение перетаскиваются в приложении. Текстовая строка и изображение перетаскиваются между приложениями в режиме разделенного экрана.
Рисунок 1. Перетаскивайте объекты в пределах одного приложения.
Рисунок 2. Перетаскивайте контент между приложениями.

Фреймворк включает класс событий перетаскивания, прослушиватели перетаскивания, а также вспомогательные классы и методы. Хотя в основном он предназначен для передачи данных, его можно использовать и для других действий в интерфейсе. Например, вы можете создать приложение, в котором цвета смешиваются, когда пользователь перетаскивает значок одного цвета на значок другого. Однако в остальной части документа фреймворк перетаскивания описывается в контексте передачи данных.

Обзор

В процессе перетаскивания участвует несколько элементов.

  1. Источник перетаскивания – начальная точка процесса перетаскивания.

  2. Цель перетаскивания – представление, которое может принимать перетаскиваемые данные.

  3. Тень перетаскивания. Тень перетаскивания – это видимое пользователю представление перетаскиваемых данных.

  4. События перетаскивания. Когда пользователь перемещает тень перетаскивания по макету приложения, система отправляет события перетаскивания в прослушиватели событий перетаскивания и методы обратного вызова, связанные с объектами View в макете.

Операция перетаскивания начинается, когда пользователь выполняет жест пользовательского интерфейса, который ваше приложение распознает как сигнал для начала перетаскивания данных. В ответ приложение уведомляет систему о начале операции перетаскивания. Система обращается к вашему приложению, чтобы получить тень перетаскивания и показать ее пользователям во время перетаскивания.

Когда пользователь перемещает тень перетаскивания по макету приложения, система отправляет события перетаскивания прослушивателям событий перетаскивания и методам обратного вызова, связанным с объектами View в макете. Если пользователь отпускает тень перетаскивания над целью перетаскивания, система отправляет ей данные. Операция перетаскивания завершается, когда пользователь отпускает тень перетаскивания, независимо от того, находится ли она над целью перетаскивания.

Темы

Основные понятия
Поймите процесс перетаскивания.
DropHelper для упрощенного перетаскивания
Узнайте, как реализовать перетаскивание с помощью DropHelper.
Как реализовать перетаскивание с помощью представлений
Вы также можете реализовать перетаскивание с помощью представлений Android. Это позволит вам лучше контролировать детали.
Как перетаскивать объекты в многооконном режиме
Поддержка перетаскивания в многооконном режиме, позволяющая перемещать объекты между разными приложениями.

Дополнительные ресурсы