Lists and Grids in Flutter: ListView.builder, Slivers, Lazy Rendering and the Bookstore Catalog Screen
The default ListView constructor also builds only the visible rows, but it creates every row widget up front; data-driven lists are built with ListView.builder or slivers, while shrinkWrap makes all thousand rows build. We build Bookstore's catalog screen with CustomScrollView, SliverAppBar and a list/grid switch, and show with real test output paged loading, pull-to-refresh, empty and error states, and cacheWidth cutting a cover's memory from 8 MB to 122 KB.
15 Nov 2026
·
11 min
·
5