Layout widgets

Arrange other widgets columns, rows, grids, and many other layouts.

See more widgets in the widget catalog.

Single-child layout widgets

Container

A convenience widget that combines common painting, positioning, and sizing widgets.

Padding

A widget that insets its child by the given padding.

Center

A widget that centers its child within itself.

Align

A widget that aligns its child within itself and optionally sizes itself based on the child's size.

FittedBox

Scales and positions its child within itself according to fit.

AspectRatio

A widget that attempts to size the child to a specific aspect ratio.

ConstrainedBox

A widget that imposes additional constraints on its child.

Abc
Baseline

A widget that positions its child according to the child's baseline.

FractionallySizedBox

A widget that sizes its child to a fraction of the total available space. For more details about the layout algorithm, see RenderFractionallySizedOverflowBox.

IntrinsicHeight

A widget that sizes its child to the child's intrinsic height.

IntrinsicWidth

A widget that sizes its child to the child's intrinsic width.

LimitedBox

A box that limits its size only when it's unconstrained.

Offstage

A widget that lays the child out as if it was in the tree, but without painting anything, without making the child available for hit testing, and without taking any room in the parent.

OverflowBox

A widget that imposes different constraints on its child than it gets from its parent, possibly allowing the child to overflow the parent.

SizedBox

A box with a specified size. If given a child, this widget forces its child to have a specific width and/or height (assuming values are permitted by this widget's parent). If either the width or height is null, this widget will size itself to match the child's size in that dimension.

SizedOverflowBox

A widget that is a specific size but passes its original constraints through to its child, which will probably overflow.

Transform

A widget that applies a transformation before painting its child.

CustomSingleChildLayout

A widget that defers the layout of its single child to a delegate.

Multi-child layout widgets

Row

Layout a list of child widgets in the horizontal direction.

Column

Layout a list of child widgets in the vertical direction.

Stack

This class is useful if you want to overlap several children in a simple way, for example having some text and an image, overlaid with a gradient and a button attached to the bottom.

IndexedStack

A Stack that shows a single child from a list of children.

GridView

A scrollable, 2D array of widgets.

Flow

A widget that implements the flow layout algorithm.

Table

A widget that uses the table layout algorithm for its children.

Wrap

A widget that displays its children in multiple horizontal or vertical runs.

ListBody

A widget that arranges its children sequentially along a given axis, forcing them to the dimension of the parent in the other axis.

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.

CustomMultiChildLayout

A widget that uses a delegate to size and position multiple children.

LayoutBuilder

Builds a widget tree that can depend on the parent widget's size.

Expanded

A widget that expands a child of a Row, Column, or Flex.

See more widgets in the widget catalog.