启用拖放

尝试 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 视图实现拖放,这允许开发人员更好地控制细节。
多窗口模式下的拖放
在多窗口模式下支持拖放,允许对象跨不同应用程序移动。

其他资源