Scrolling widgets

Scroll multiple widgets as children of the parent.

See more widgets in the widget catalog.

ListView

A scrollable, linear list of widgets. ListView is the most commonly used scrolling widget. It displays its children one after another in the scroll direction. In the cross axis, the children are required to fill the ListView.

GridView

A scrollable, 2D array of widgets. The most commonly used grid layouts are GridView.count, which creates a layout with a fixed number of tiles in the cross axis, and GridView.extent, which creates a layout with tiles that have a maximum cross-axis extent. A custom SliverGridDelegate can produce an aribtrary 2D arrangement of children, including arrangements that are unaligned or overlapping.

SingleChildScrollView

A box in which a single widget can be scrolled. This widget is useful when you have a single box that will normally be entirely visible, for example a clock face in a time picker, but you need to make sure it can be scrolled if the container gets too small in one axis (the scroll direction).

Scrollable

Scrollable implements the interaction model for a scrollable widget, including gesture recognition, but does not have an opinion about how the viewport, which actually displays the children, is constructed.

Scrollbar

A Material Design scrollbar. A scrollbar indicates which portion of a Scrollable widget is actually visible.

CustomScrollView

A ScrollView that creates custom scroll effects using slivers.

NotificationListener

A widget that listens for Notifications bubbling up the tree.

ScrollConfiguration

Controls how Scrollable widgets behave in a subtree.

RefreshIndicator

A Material Design pull-to-refresh wrapper for scrollables.

PageView

A scrollable list that works page by page.

See more widgets in the widget catalog.