您可能希望在应用中的某个地方实现拖放功能。

您有两种潜在的方法。一种是直接使用 Flutter 组件,另一种是使用 pub.dev 上可用的包(super_drag_and_drop)。

在应用内创建可拖动组件

#

如果您想在应用内实现拖放功能,可以使用 Draggable 组件。有关此方法的深入了解,请参阅“在应用中拖动 UI 元素”指南。

使用 DraggableDragTarget 的一个优点是,您可以提供 Dart 代码来决定是否接受拖放。

欲了解更多信息,请查看“Draggable 组件每周一览”视频。

实现在应用之间拖放

#

如果您想在应用内以及应用与其他(可能非 Flutter)应用之间实现拖放,请查看 super_drag_and_drop 包。

为了避免实现两种拖放样式(一种用于拖出应用,另一种用于应用内拖动),您可以向该包提供本地数据,以便在应用内执行拖动。

这种方法与直接使用 Draggable 的另一个区别是,您必须预先告知该包您的应用接受什么数据,因为平台 API 需要同步响应,而不允许框架进行异步响应。

使用此方法的优点是它适用于桌面、移动端网页。