Android 拖放框架允许您为应用添加交互式拖放功能。通过拖放,用户可以在应用内部或在 多窗口模式 下的应用之间,复制或移动文本、图像、对象以及任何可以用 URI 表示的内容,从一个 View
到另一个 View
。
![]() |
![]() |
|
|
该框架包含拖动事件类、拖动监听器以及辅助类和方法。虽然主要用于实现数据传输,但您也可以将此框架用于其他界面操作。例如,您可以创建一个应用,在用户将一个颜色图标拖到另一个图标上时混合颜色。不过,本文档其余部分将重点介绍数据传输环境下的拖放框架。
概览
拖动过程中涉及以下几个元素。
拖动源:拖放过程的起始点视图。
放置目标:可以接受拖动数据的视图。
拖动阴影:拖动阴影 是正在拖动数据的表示,用户可以看到它。
拖动事件:当用户在应用布局上移动拖动阴影时,系统会向与布局中的
View
对象关联的拖动事件监听器和回调方法发送拖动事件。
当用户做出应用识别为开始拖动数据的信号的界面手势时,拖放操作就会开始。为此,应用会通知系统拖放操作正在开始。系统会回调应用以获取拖动阴影,并在拖放过程中将其显示给用户。
当用户在应用布局上移动拖动阴影时,系统会向与布局中的 View
对象关联的 拖动事件监听器和回调方法 发送拖动事件。如果用户在放置目标上释放拖动阴影,系统会将数据发送到该目标。无论拖动阴影是否位于放置目标上,当用户释放拖动阴影时,拖放操作即告结束。
主题
- 主要概念
- 了解拖放过程。
- DropHelper 简化拖放功能
- 了解如何使用
DropHelper
实现拖放功能。 - 使用视图实现拖放功能
- 或者,使用 Android 视图实现拖放功能,这允许开发者更好地控制细节。
- 多窗口模式下的拖放
- 支持多窗口模式下的拖放功能,允许对象在不同应用之间移动。
其他资源
- 使用视图的 拖放 Codelab
- 通过拖放实现无缝多任务处理 视频
- 拖放示例,包含实现拖放和接受富媒体的各种方法。