AbstractLayoutBuilder<LayoutInfoType> class
abstract
An abstract superclass for widgets that defer their building until layout.
Similar to the Builder widget except that the implementation calls the builder
function at layout time and provides the LayoutInfoType
that is required to
configure the child widget subtree.
This is useful when the child widget tree relies on information that are only available during layout, and doesn't depend on the child's intrinsic size.
The LayoutInfoType
should typically be immutable. The equality of the
LayoutInfoType
type is used by the implementation to avoid unnecessary
rebuilds: if the new LayoutInfoType
computed during layout is the same as
(defined by LayoutInfoType.==
) the previous LayoutInfoType
, the
implementation will try to avoid calling the builder again unless
updateShouldRebuild returns true. The corresponding RenderObject produced
by this widget retains the most up-to-date LayoutInfoType
for this purpose,
which may keep a LayoutInfoType
object in memory until the widget is removed
from the tree.
Subclasses must return a RenderObject that mixes in RenderAbstractLayoutBuilderMixin.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- RenderObjectWidget
- AbstractLayoutBuilder
- Implementers
Constructors
- AbstractLayoutBuilder({Key? key})
-
Creates a widget that defers its building until layout.
const
Properties
- builder → Widget Function(BuildContext context, LayoutInfoType layoutInfo)
-
Called at layout time to construct the widget tree.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
createElement(
) → RenderObjectElement -
RenderObjectWidgets always inflate to a RenderObjectElement subclass.
override
-
createRenderObject(
BuildContext context) → RenderAbstractLayoutBuilderMixin< LayoutInfoType, RenderObject> -
Creates an instance of the RenderObject class that this
RenderObjectWidget represents, using the configuration described by this
RenderObjectWidget.
override
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
didUnmountRenderObject(
covariant 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 nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
-
updateRenderObject(
BuildContext context, covariant RenderObject 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.
inherited
-
updateShouldRebuild(
covariant AbstractLayoutBuilder< LayoutInfoType> oldWidget) → bool - Whether builder needs to be called again even if the layout constraints are the same.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited