因為業務,所以需要用flutter去實現一種不規則圖形的瀑布流,但是同時需要支持拖拽并重新排序。效果類似如下。
查詢過現有的插件,要么是僅支持同樣大小的組件進行排序,要么就是動畫效果不是很滿意,有點死板,總有這樣那樣的問題,所以自己寫了一個,地址如下:staggered_reorderable
version 0.0.12
支持的功能:
scrollDirection
:指定布局方向,支持水平和垂直。duration
:拖拽時觸發重排序的動畫持續時間。antiShakeDuration
:防抖時間,為了防止臨界點時頻繁觸發重排序(只能解決一部分,還是會出現,后續會優化掉),默認milliseconds:100
。collation
:拖拽完成后的交換規則,true:交換,false:插入
,默認false。children
:布局的子項,需要是List<*ReorderableItem*>
類型。columnNum
:布局的個數,垂直布局時為每行,水平布局時為每列,默認3。spacing
:間隙 ,默認5.0。canDrag
:是否允許拖拽,不允許則為單純的不規則圖形瀑布流布局。forwardRedundancy
:自動滾動冗余偏移量[Axis.vertical]向上; [Axis.horizontal]向左
,默認40.0。backwardRedundancy
:自動滾動冗余偏移量[Axis.vertical]向下; [Axis.horizontal]向右
,默認40.0。scrollStep
:每次自動滾動長度,默認10.0。onReorder
:每次交換完會調用此方法,獲取排序后的trackingNumber列表。