你可能會想要在你的應用程式中實作 拖放(drag and drop)功能。

你有幾種潛在的實作方式可以選擇。 一種是直接使用 Flutter 元件(Widgets), 另一種則是使用一個套件 (super_drag_and_drop),可在 pub.dev 上取得。

在應用程式內建立可拖曳元件

#

如果你想要在應用程式內部實作拖放功能, 你可以使用 Draggable 元件。關於這種做法的詳細說明, 請參考 在應用程式內拖曳 UI 元素 教學。

使用 DraggableDragTarget 的優點在於, 你可以提供 Dart 程式碼來決定是否接受拖放。

如需更多資訊,請參考 Draggable widget of the week 影片。

實作跨應用程式的拖放功能

#

如果你想要實作不僅在應用程式內部, 還能在你的應用程式與其他(可能不是 Flutter)應用程式之間 進行拖放,請參考 super_drag_and_drop 套件。

為了避免需要分別實作兩種拖放樣式 (應用程式外部拖曳與應用程式內部拖曳), 你可以提供 local data 給該套件, 以在你的應用程式內部執行拖曳。

這種做法與直接使用 Draggable 的另一個差異在於, 你必須事先告知套件你的應用程式能接受哪些資料, 因為平台 API 需要同步回應,這不允許框架提供非同步回應。

這種方式的優點是能同時支援桌面、行動裝置,以及 網頁平台。