製作了一個放置 darggableButton 的地方後,接下來我們要製作可以任意擺放按鈕位置的元件,這時我們就會需要使用到 DragTarget 來幫助我們完成。
DragTarget 就跟他的名字一樣,提供一個目標給 Draggable ,接收來自 Draggable 攜帶的資料
DragTarget({
Key key,
@required DragTargetBuilder<T> builder,
DragTargetWillAccept<T> onWillAccept,
DragTargetAccept<T> onAccept,
DragTargetAcceptWithDetails<T> onAcceptWithDetails,
DragTargetLeave onLeave
})
builder
建構target widget 的屬性
Widget DragTargetBuilder (
BuildContext context,
List<T> candidateData, //準備接收的資料
List rejectedData //準備拒絕的資料
)
onWillAccept
當 draggable 將被拖進 target 中時呼叫,return true 就是可以被接受,onAccept就會被呼叫onAccept
當可以被接收的資料被拖進 target 中,onWillAccept teturn true 呼叫onAcceptWithDetails
類似 onAccept , 包含 資料 DragTargetDetailsonLeave
拖曳 draggable 離開 target 時呼叫