如何在Flutter的按钮/图标按下时将ReorderableListView ListTile拖放?

所以我看到
ReorderableListView demo,看到他们有了

“secondary:const Icon(Icons.drag_handle)”

但是看了reorderable_list.dart文件,我发现无论如何整个列表都可以在LongPressDraggable上拖拽[第424行].那么如何才能明确地对源代码或我自己的源代码进行更改,以便正确地使图标成为实际的拖动句柄?

CheckboxListTile(
      key: Key(item.value),
      isThreeLine: true,
      value: item.checkState ?? false,
      onChanged: (bool newValue) {
        setState(() {
          item.checkState = newValue;
        });
      },
      title: Text('This item represents ${item.value}.'),
      subtitle: secondary,
      secondary: const Icon(Icons.drag_handle),  // Make this Icon drag source
    );

谢谢

最佳答案 我认为Icon(Icons.drag_handle)只是为了那里的外观,要在ReorderableListView中拖动项目,你必须长按它.

您可以使用flutter_reorderable_list并实现这一目标.正如您在其演示中所看到的,此插件可以按您希望的方式工作.

但是,它与ReorderableListView的工作方式完全不同,代码更改可能有点压倒性.我创建了一个Widget来简化该开关,即widget is here及其demo is here.

如果它适合您的使用案例,请查看并使用它.

点赞