启用拖放

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

Android 拖放框架允许您向您的应用添加交互式拖放功能。使用拖放,用户可以复制或移动文本、图像、对象以及可以由 URI 表示的任何内容,从一个应用内的 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. 应用之间的拖放。

该框架包括拖放事件类、拖放侦听器以及辅助类和方法。虽然主要设计用于启用数据传输,但您可以将该框架用于其他 UI 操作。例如,您可以创建一个应用,当用户将颜色图标拖到另一个图标上时,该应用会混合颜色。但是,本文档的其余部分将描述拖放框架在数据传输方面的上下文。

概述

拖放过程中涉及一些元素。

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

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

  3. 拖放阴影拖放阴影是正在拖放的数据的表示形式,对用户可见。

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

当用户进行应用识别为开始拖放数据的信号的 UI 手势时,拖放操作开始。作为响应,应用通知系统拖放操作已开始。系统回调到您的应用以获取拖放阴影,并在拖放过程中将其显示给用户。

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

主题

关键概念
了解拖放过程。
用于简化拖放的 DropHelper
了解如何使用 DropHelper 实现拖放。
使用视图实施拖放
或者,使用 Android 视图实现拖放,这允许开发人员更好地控制细节。
多窗口模式下的拖放
在多窗口模式下支持拖放,允许对象跨不同应用程序移动。

其他资源