We also touched on two more advanced scrolling topics in this recipe – itemExtent and ScrollController.
The itemExtent property is a way to supply a fixed height to all the items in ListView. Instead of letting the widget figure out its own height based on the content, using the itemExtent property will enforce a fixed height for every item. This has added performance benefits, since ListView now needs to do less work when laying out its children, and it also makes it easier to calculate scrolling animations.
ScrollController is a special object that allows to key into ListView from outside the build methods. This is a frequently used pattern in Flutter where you can optionally provide a controller object that has methods to manipulate its widget. ScrollController can do many interesting things, but in this recipe, we just used it to animate ListView from the _lap method:
scrollController...