Be lazy!

When building a large grid or list,
use the lazy builder methods, with callbacks.
That ensures that only the visible portion of the
screen is built at startup time.

For more information and examples, check out:

Working with long lists in the Cookbook

Creating a ListView that loads one page at a time
a community article by AbdulRahman AlHamali

Listview.builder API

Avoid intrinsics

For information on how intrinsic passes might be causing
problems with your grids and lists, see the next section.

Minimize layout passes caused by intrinsic operations

If you’ve done much Flutter programming, you are
probably familiar with how layout and constraints work
when creating your UI. You might even have memorized Flutter’s
basic layout rule: Constraints go down. Sizes go up.
Parent sets position.