A widget that controls where a child of a Stack is positioned.

A Positioned widget must be a descendant of a Stack, and the path from the Positioned widget to its enclosing Stack must contain only StatelessWidgets or StatefulWidgets (not other kinds of widgets, like RenderObjectWidgets).

If a widget is wrapped in a Positioned, then it is a positioned widget in its Stack. If the top property is non-null, the top edge of this child will be positioned top layout units from the top of the stack widget. The right, bottom, and left properties work analogously.

If both the top and bottom properties are non-null, then the child will be forced to have exactly the height required to satisfy both constraints. Similarly, setting the right and left properties to non-null values will force the child to have a particular width. Alternatively the width and height properties can be used to give the dimensions, with one corresponding position property (e.g. top and height).



Positioned({Key key, double left, double top, double right, double bottom, double width, double height, @required Widget child })

Creates a widget that controls where a child of a Stack is positioned.

Positioned.fill({Key key, Widget child, double left: 0.0, double top: 0.0, double right: 0.0, double bottom: 0.0 })

Creates a Positioned object with left, top, right, and bottom set to 0.0 unless a value for them is passed.

Positioned.fromRect({Key key, Widget child, Rect rect })

Creates a Positioned object with the values from the given Rect.


bottom double

The distance that the child's bottom edge is inset from the bottom of the stack.

height double

The child's height.

left double

The distance that the child's left edge is inset from the left of the stack.


The distance that the child's right edge is inset from the right of the stack.

top double

The distance that the child's top edge is inset from the top of the stack.

width double

The child's width.

child Widget

The widget below this widget in the tree.

read-only, inherited
hashCode int

Get a hash code for this object.

read-only, inherited
key Key

Controls how one widget replaces another widget in the tree.

read-only, inherited
runtimeType Type

A representation of the runtime type of the object.

read-only, inherited


operator ==(other) bool

The equality operator.



applyParentData(RenderObject renderObject) → void

Write the data from this widget into the given render object's parent data.

debugFillDescription(List<String> description) → void

Add additional information to the given description for use by toString.

createElement() ParentDataElement<Stack>

Inflates this configuration to a concrete instance.

debugDescribeInvalidAncestorChain({String description, String ownershipChain, bool foundValidAncestor, Iterable<Widget> badAncestors }) String

Subclasses should override this to describe the requirements for using the ParentDataWidget subclass. It is called when debugIsValidAncestor() returned false for an ancestor, or when there are extraneous ParentDataWidgets in the ancestor chain.

debugIsValidAncestor(RenderObjectWidget ancestor) bool

Subclasses should override this method to return true if the given ancestor is a RenderObjectWidget that wraps a RenderObject that can handle the kind of ParentData widget that the ParentDataWidget subclass handles.

noSuchMethod(Invocation invocation) → dynamic

Invoked when a non-existent method or property is accessed.

toString() String

Returns a string representation of this object.

toStringShort() String

A short, textual description of this widget.