- 支持所有widget的拖拽
- 是滑动组件的时候需要传scrollController、scrollDirection,不然无法到边缘自动滚动
- 理论支持所有widget,flutter_staggered_grid_view(支持懒加载列表), listView, GridView等
项目地址:pub.flutter-io.cn/packages/dr…
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text(widget.title)),
body: DragAnim(
scrollController: scrollController,
scrollDirection: Axis.vertical,
buildItems: (dragItems) {
return MasonryGridView.count(
crossAxisCount: 4,
mainAxisSpacing: 4,
crossAxisSpacing: 4,
controller: scrollController,
itemCount: items.length,
itemBuilder: (context, index) {
return dragItems(
data: items[index],
child: Container(
color: Colors.red,
alignment: Alignment.center,
child: Text(
items[index],
style: const TextStyle(fontSize: 30, color: Colors.white, decoration: TextDecoration.none),
),
),
key: ValueKey<String>(items[index]),
);
},
);
},
dataList: items,
),
);
}