Jetpack DragAndDrop 库——拖放操作如此轻松

Posted 涂程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jetpack DragAndDrop 库——拖放操作如此轻松相关的知识,希望对你有一定的参考价值。

拖放是最基本的手势操作,用户可以点击并按住图片、文本或其他数据元素,然后将其拖动至另一个应用 (或者同一个应用的其他位置) 并松手,即可将数据放置到新的位置上。手势通常在触摸屏上表现为长按,在使用鼠标时则为点击并拖动。

  • 拖放https://developer.android.google.cn/guide/topics/ui/drag-drop

虽然 Android 很早以前便一直支持拖放操作 (DragEvent 在 Android 3.0 即 API 级别为 11 中引入),但事实证明实现对处理手势、事件、权限和回调的全面支持并不容易。

  • DragEvent

    https://developer.android.google.cn/reference/android/view/DragEvent

我们将为您介绍目前处于 Alpha 阶段的 Jetpack DragAndDrop 库,帮助您更轻松地在应用中处理拖放数据。

/* Copyright 2021 Google LLC.SPDX-License-Identifier: Apache-2.0 */
  • Jetpack DragAndDrop https://developer.android.google.cn/jetpack/androidx/releases/draganddrop

拖放操作在大屏幕设备中变得越来越重要: 平板电脑和笔记本电脑,尤其是可折叠设备,其分屏模式的拖放操作使用概率是传统手机的 7 倍。对用户而言,将数据从一个应用拖动到另一个应用是很自然的体验,因此用户在分屏或窗口模式下使用应用可以更有效地进行多任务处理。

  • 分屏或窗口模式 https://developer.android.google.cn/guide/topics/large-screens/multi-window-support

虽然平台本身支持从 EditText 中拖动文本,但我们强烈建议支持用户从应用的其他组件中拖动任何图片、文件和文本。同样重要的是,我们也鼓励支持用户将数据拖放至您的应用。

DropHelper 和 DragStartHelper 结合使用,可以更轻松地处理手势支持、回调、样式和像素完美对齐。

  • DropHelper https://developer.android.google.cn/reference/androidx/draganddrop/DropHelper

  • DragStartHelper https://developer.android.google.cn/reference/androidx/core/view/DragStartHelper

DragStartHelper

DragStartHelper 是 Jetpack 核心库中的工具类,通常用于检测开始拖动的手势,例如长按或鼠标的点击拖动操作。

/* Copyright 2021 Google LLC.SPDX-License-Identifier: Apache-2.0 */

DropHelper

新的 DropHelper 是一个负责监听器和放置目标的工具类。务必使用 addInnerEditTexts() 构建 DropHelper.Options,以此确保您放置目标内任何嵌套的 EditTexts 都不会获得焦点。

/* Copyright 2021 Google LLC.SPDX-License-Identifier: Apache-2.0 */

了解更多

更多详情请参阅给 Android 开发者的拖放指南,通过大屏幕示例更深入了解 DropHelper 实践。欢迎立即尝试 Alpha 版本并期待您的反馈。

  • 拖放指南 https://developer.android.google.cn/guide/topics/ui/drag-drop

  • 大屏幕示例 https://github.com/android/user-interface-samples/pull/302/

  • 反馈 https://issuetracker.google.com/issues/new?component=1139019

以上是关于Jetpack DragAndDrop 库——拖放操作如此轻松的主要内容,如果未能解决你的问题,请参考以下文章

Jetpack 叒一新成员 DragAndDrop 框架:大大简化拖放手势开发

Jetpack 叒一新成员 DragAndDrop 框架:大大简化拖放手势开发

Jetpack 叒一新成员 DragAndDrop 框架:大大简化拖放手势开发

Jetpack 又双叒一新成员 DragAndDrop 框架:大大简化拖放手势开发

原生拖拽,拖放事件(drag and drop)

高级功能使用拖放