Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I make a ReorderableListView ListTile draggable on button/icon press for Flutter?

So I saw the ReorderableListView demo and saw that they had the

"secondary: const Icon(Icons.drag_handle)"

but looking at the reorderable_list.dart file, I noticed that the entire list was draggable on LongPressDraggable anyway [line 424]. So how can I explicitly make changes to either the source code or my own, in order to properly make the icon an actual drag handle?

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
    );

Thanks

like image 908
Johnny Boy Avatar asked Nov 08 '18 04:11

Johnny Boy


People also ask

How do I drag and drop ListView items in flutter?

For implementing the Drag and Drop Listview feature in Flutter, Firstly we need to create a stateful widget, in which we have a list of food items from which we will drag the items. Also, we will make a customers list in which we drop the food items and dropped items are added as cart items in the customer's list.


1 Answers

I think the Icon(Icons.drag_handle) it's just for the looks there, to drag the item in a ReorderableListView you have to long press it.

You can use flutter_reorderable_list and achieve that. As you can see in its demo, this plugin works just the way you want to.

However, it works quite differently of ReorderableListView, the code change can be a bit overwhelming. I created a Widget to simplify that switch, the widget is here and its demo is here.

Take a look and use it if it fits your use case.

like image 163
Feu Avatar answered Sep 17 '22 21:09

Feu