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

The delegate can determine the layout constraints for each child and can decide where to position each child. The delegate can also determine the size of the parent, but the size of the parent cannot depend on the sizes of the children.

CustomMultiChildLayout is appropriate when there are complex relationships between the size and positioning of a multiple widgets. To control the layout of a single child, CustomSingleChildLayout is more appropriate. For simple cases, such as aligning a widget to one or another edge, the Stack widget is more appropriate.

Each child must be wrapped in a LayoutId widget to identify the widget for the delegate.

See also:

  • MultiChildLayoutDelegate, for details about how to control the layout of the children.
  • CustomSingleChildLayout, which uses a delegate to control the layout of a single child.
  • Stack, which arranges children relative to the edges of the container.
  • Flow, which provides paint-time control of its children using transform matrices.
Inheritance

Constructors

CustomMultiChildLayout({Key key, @required MultiChildLayoutDelegate delegate, List<Widget> children: const [] })

Creates a custom multi-child layout.

Properties

delegate MultiChildLayoutDelegate

The delegate that controls the layout of the children.

read-only
children List<Widget>

The widgets 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

Operators

operator ==(other) bool

The equality operator.

inherited

Methods

createRenderObject(BuildContext context) RenderCustomMultiChildLayoutBox

Creates an instance of the RenderObject class that this RenderObjectWidget represents, using the configuration described by this RenderObjectWidget.

updateRenderObject(BuildContext context, RenderCustomMultiChildLayoutBox renderObject) → void

Copies the configuration described by this RenderObjectWidget to the given RenderObject, which will be of the same type as returned by this object's createRenderObject.

createElement() MultiChildRenderObjectElement

RenderObjectWidgets always inflate to a RenderObjectElement subclass.

inherited
debugFillDescription(List<String> description) → void

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

inherited
didUnmountRenderObject(RenderObject renderObject) → void

A render object previously associated with this widget has been removed from the tree. The given RenderObject will be of the same type as returned by this object's createRenderObject.

inherited
noSuchMethod(Invocation invocation) → dynamic

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

inherited
toString() String

Returns a string representation of this object.

inherited
toStringShort() String

A short, textual description of this widget.

inherited