
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:
ReorderableDragStartListener( index: index, child: const Icon(Icons.drag_handle), ),
A full example usage with a very simple list:
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: