拖拽到应用外部
如何从一个应用拖拽到另一个应用或操作系统。
你可能需要在应用中的某个位置实现拖拽功能。
你有几种可选方案。一种是直接使用 Flutter 原生组件,另一种是使用 pub.dev 上提供的软件包(super_drag_and_drop)。
在应用内创建可拖拽组件
#如果你想在应用内实现拖拽,可以使用 Draggable 组件。关于这种方法的深入了解,请参阅“在应用内拖拽 UI 元素”指南。
使用 Draggable 和 DragTarget 的一个优势是,你可以提供 Dart 代码来决定是否接受拖拽放置。
欲了解更多信息,请查看 Draggable 每周组件视频。
实现应用间的拖拽操作
#如果你不仅想在应用内实现拖拽,还想实现应用与另一个应用(可能非 Flutter 开发)之间的拖拽,请查看 super_drag_and_drop 软件包。
为避免实现两种不同的拖拽样式(一种用于应用外拖拽,另一种用于应用内拖拽),你可以向该软件包提供 本地数据 (local data),从而在应用内执行拖拽操作。
这种方法与直接使用 Draggable 的另一个区别在于,你必须预先告知软件包你的应用接受什么数据,因为平台 API 需要同步响应,这不允许来自框架的异步响应。
使用此方法的一个优势是它适用于桌面端、移动端以及 Web 端。