By default, ReorderableListView only shows drag handles on desktop (GitHub). To enable a drag handle inside a ReorderableListView, it is possible to add the following code into the child’s subtree:
Dart
ReorderableDragStartListener(
index: index,
child: const Icon(Icons.drag_handle),
),
A full example usage with a very simple list:
Dart
var moviesTitles = ['Inception', 'Heat', 'Spider Man'];
ReorderableListView(
onReorder: (oldIndex, newIndex) {
// Handle reorder
},
children: moviesTitles.map((movie) {
var index = moviesTitles.indexOf(movie);
return ListTile(
key: Key('${index}'),
tileColor: Colors.white,
title: Text(movie),
trailing: ReorderableDragStartListener(
index: index,
child: const Icon(Icons.drag_handle),
),
onTap: () {
// Handle tap
},
);
}).toList(),
);
This will result in the following output:
Leave a Reply