LimitedBox,

ConstrainedBox,

Align,

Padding,

DecoratedBox, and

Transform widgets, as you
can see by reading its source code. A defining characteristic of Flutter is that
you can drill down into the source for any widget and examine it. So, rather
than subclassing

Building widgets

build() function to
return a new element tree. This tree represents the widget’s part of the user
interface in more concrete terms. For example, a toolbar widget might have a
build function that returns a

horizontal
layout of some

text and

various

buttons. As needed,
the framework recursively asks each widget to build until the tree is entirely
described by

concrete renderable
objects. The
framework then stitches together the renderable objects into a renderable object
tree.