Flutter 3.41 is live! Check out theblog post!
Scrolling
Overview of Flutter's scrolling support
Flutter has many built-in widgets that automatically scroll and also offers a variety of widgets that you can customize to create specific scrolling behavior.
Basic scrolling
# Many Flutter widgets support scrolling out of the box and do most of the work for you. For example,SingleChildScrollView automatically scrolls its child when necessary. Other useful widgets includeListView andGridView. You can check out more of these widgets on thescrolling page of the Widget catalog.
Infinite scrolling
# When you have a long list of items in yourListView orGridView (including aninfinite list), you can build the items on demand as they scroll into view. This provides a much more performant scrolling experience. For more information, check outListView.builder orGridView.builder.
Specialized scrollable widgets
#The following widgets provide more specific scrolling behavior.
A video on usingDraggableScrollableSheet:
Turn the scrollable area into a wheel withListWheelScrollView!
Fancy scrolling
#Perhaps you want to implementelastic scrolling, also calledscroll bouncing. Or maybe you want to implement other dynamic scrolling effects, like parallax scrolling. Or perhaps you want a scrolling header with very specific behavior, such as shrinking or disappearing.
You can achieve all this and more using the FlutterSliver* classes. Asliver refers to a piece of the scrollable area. You can define and insert a sliver into aCustomScrollView to have finer-grained control over that area.
For more information, check outUsing slivers to achieve fancy scrolling and theSliver classes.
Nested scrolling widgets
# How do you nest a scrolling widget inside another scrolling widget without hurting scrolling performance? Do you set theShrinkWrap property to true, or do you use a sliver?
Check out the "ShrinkWrap vs Slivers" video:
Unless stated otherwise, the documentation on this site reflects Flutter 3.41.2. Page last updated on 2025-10-28.View source orreport an issue.