Dynamically updating ListView

In UIKit, you update the data for the list view,
and notify the table or collection view using the
reloadData method.

In Flutter, if you update the list of widgets inside a setState(),
you quickly see that your data doesn’t change visually.
This is because when setState() is called,
the Flutter rendering engine looks at the widget tree
to see if anything has changed.
When it gets to your ListView, it performs an == check,
and determines that the two ListViews are the same.
Nothing has changed, so no update is required.

For a simple way to update your ListView,
create a new List inside of setState(),
and copy the data from the old list to the new list.
While this approach is simple,
it is not recommended for large data sets,
as shown in the next example.