启用拖放

试试 Compose 的方式
Jetpack Compose 是 Android 推荐的 UI 工具包。了解如何在 Compose 中使用拖放功能。

Android 拖放框架允许您为应用添加交互式拖放功能。通过拖放,用户可以在应用内部或在 多窗口模式 下的应用之间,复制或移动文本、图像、对象以及任何可以用 URI 表示的内容,从一个 View 到另一个 View

Text string and image being dragged and dropped within an app. Text string and image being dragged and dropped between apps in split-screen mode.
图 1. 应用内部的拖放。
图 2. 应用之间的拖放。

该框架包含拖动事件类、拖动监听器以及辅助类和方法。虽然主要用于实现数据传输,但您也可以将此框架用于其他界面操作。例如,您可以创建一个应用,在用户将一个颜色图标拖到另一个图标上时混合颜色。不过,本文档其余部分将重点介绍数据传输环境下的拖放框架。

概览

拖动过程中涉及以下几个元素。

  1. 拖动源:拖放过程的起始点视图。

  2. 放置目标:可以接受拖动数据的视图。

  3. 拖动阴影拖动阴影 是正在拖动数据的表示,用户可以看到它。

  4. 拖动事件:当用户在应用布局上移动拖动阴影时,系统会向与布局中的 View 对象关联的拖动事件监听器和回调方法发送拖动事件。

当用户做出应用识别为开始拖动数据的信号的界面手势时,拖放操作就会开始。为此,应用会通知系统拖放操作正在开始。系统会回调应用以获取拖动阴影,并在拖放过程中将其显示给用户。

当用户在应用布局上移动拖动阴影时,系统会向与布局中的 View 对象关联的 拖动事件监听器和回调方法 发送拖动事件。如果用户在放置目标上释放拖动阴影,系统会将数据发送到该目标。无论拖动阴影是否位于放置目标上,当用户释放拖动阴影时,拖放操作即告结束。

主题

主要概念
了解拖放过程。
DropHelper 简化拖放功能
了解如何使用 DropHelper 实现拖放功能。
使用视图实现拖放功能
或者,使用 Android 视图实现拖放功能,这允许开发者更好地控制细节。
多窗口模式下的拖放
支持多窗口模式下的拖放功能,允许对象在不同应用之间移动。

其他资源