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