在应用外拖动
您可能想在您的应用中实现拖放功能。
您有两种潜在的方法。一种直接使用 Flutter 小部件,另一种使用 pub.dev 上可用的包 (super_drag_and_drop)。
在您的应用中创建可拖动的小部件
#如果您想在您的应用程序中实现拖放功能,您可以使用 Draggable
小部件。有关此方法的深入了解,请参阅在应用程序内拖动 UI 元素食谱。
使用 Draggable
和 DragTarget
的一个优点是您可以提供 Dart 代码来决定是否接受拖放。
欲了解更多信息,请查看 Draggable
本周小部件视频。
实现应用间的拖放
#如果您想在您的应用程序内部以及您的应用程序与其他(可能是非 Flutter)应用程序之间实现拖放功能,请查看 super_drag_and_drop 包。
为了避免实现两种拖放样式,一种用于应用外部的拖动,另一种用于应用内部的拖动,您可以向该包提供本地数据,以便在您的应用内执行拖动。
此方法与直接使用 Draggable
的另一个区别是,您必须预先告知该包您的应用程序接受什么数据,因为平台 API 需要同步响应,这不允许框架进行异步响应。
使用此方法的一个优点是它适用于桌面、移动设备和 Web。