Flutter widgets are built using a modern framework that takes inspiration from React. The central idea is that you build your UI out of widgets. Widgets describe what their view should look like given their current configuration and state. When a widget’s state changes, the widget rebuilds its description, which the framework diffs against the previous description in order to determine the minimal changes needed in the underlying render tree to transition from one state to the next
Basic widgets
Flutter comes with a suite of powerful basic widgets, of which the following are commonly used:
Text
- The
Text
widget lets you create a run of styled text within your application. Row
,Column
- These flex widgets let you create flexible layouts in both the horizontal (
Row
) and vertical (Column
) directions. The design of these objects is based on the web’s flexbox layout model. Stack
- Instead of being linearly oriented (either horizontally or vertically), a
Stack
widget lets you place widgets on top of each other in paint order. You can then use thePositioned
widget on children of aStack
to position them relative to the top, right, bottom, or left edge of the stack. Stacks are based on the web’s absolute positioning layout model. Container
- The
Container
widget lets you create a rectangular visual element. A container can be decorated with aBoxDecoration
, such as a background, a border, or a shadow. AContainer
can also have margins, padding, and constraints applied to its size. In addition, aContainer
can be transformed in three dimensional space using a matrix.
.