跳转至正文

在应用外拖拽

如何从应用拖拽到另一个应用或操作系统。

你可能希望在应用的某个位置实现拖拽(drag and drop)功能。

你可以采用几种潜在方案。一种直接使用 Flutter widget,另一种使用 pub.dev 上的 package (super_drag_and_drop)。

在应用内创建可拖拽 widget

#

若要在应用内实现拖拽,可以使用 Draggable widget。要了解该做法,请参阅 在应用内拖拽 UI 元素 Cookbook 教程。

使用 DraggableDragTarget 的一个优点是,你可以编写 Dart 代码来决定是否接受放置。

更多信息请参阅 Draggable widget of the week 视频。

在应用之间实现拖拽

#

若要在应用内实现拖拽,并且还要在你的应用与另一个(可能非 Flutter)应用之间实现拖拽,请查看 super_drag_and_drop package。

为避免实现两套拖拽方式——一套用于应用外拖拽、另一套用于应用内拖拽—— 你可以向该 package 提供 local data,以在应用内执行拖拽。

该做法与直接使用 Draggable 的另一项区别是,你必须事先告知 package 你的应用接受哪些数据,因为平台 API 需要同步响应,而框架无法提供异步响应。

该做法的一个优点是它适用于桌面、移动端以及 Web。