import 'package:flutter/material.dart'; import '../../example_data.dart'; import '../task.dart'; class TaskOverview extends StatefulWidget { static const String routeName = '/'; const TaskOverview({super.key}); @override State createState() => _TaskOverviewState(); } class _TaskOverviewState extends State { //TODO: Replace example data call @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: ReorderableListView.builder( itemBuilder: itemBuilder, itemCount: tasks.length, onReorderItem: (oldIndex, newIndex) => reorderList(tasks, oldIndex, newIndex), ), ); } Widget itemBuilder(BuildContext context, int index) { final task = tasks.elementAt(index); return ListTile( key: Key(task.id), title: Text(task.title), subtitle: Text(task.description), ); } List reorderList(List tasks, oldIndex, newIndex) { final item = tasks.removeAt(oldIndex); tasks.insert(newIndex, item); final List reordered = []; for (int i = 0; i < tasks.length; i++) { reordered.add(tasks.elementAt(i).copyWith(position: i)); } return reordered; } }