使用LongPressDraggable
和DragTarget
写了个类似于百度云盘管理文件和文件夹的功能(为了避免和列表的滑动手势冲突,所以采用LongPressDraggable
而不是Draggable
):
1、拖拽文件到文件夹中
2、拖拽两个文件可以合并成一个新的文件夹
效果如下:
实现效果
1、文件夹可以拖拽到另外一个文件夹中去
2、文件夹不可以拖拽到设备中去
3、设备可以拖拽到文件夹中去
4、两个设备可以合并成一个新的文件夹
使用到的三方 get: ^4.6.6
代码展示(代码注释都写的比较清楚,如果有不懂的可以在下方留言)
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class DraggableListView extends StatefulWidget {
const DraggableListView({super.key});
@override
State createState() => _DraggableListViewState();
}
class _DraggableListViewState extends State {
final ScrollController _scrollController = ScrollController();
final TextEditingController _nameController = TextEditingController();
final List
简书地址