PreferredSizeWidget class Null safety

An interface for widgets that can return the size this widget would prefer if it were otherwise unconstrained.

There are a few cases, notably AppBar and TabBar, where it would be undesirable for the widget to constrain its own size but where the widget needs to expose a preferred or "default" size. For example a primary Scaffold sets its app bar height to the app bar's preferred height plus the height of the system status bar.

Widgets that need to know the preferred size of their child can require that their child implement this interface by using this class rather than Widget as the type of their child property.

Use PreferredSize to give a preferred size to an arbitrary widget.

Implemented types




hashCode int
The hash code for this object. [...]
read-only, inherited
key Key?
Controls how one widget replaces another widget in the tree. [...]
final, inherited
preferredSize Size
The size this widget would prefer if it were otherwise unconstrained. [...]
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited


createElement() Element
Inflates this configuration to a concrete instance. [...]
@factory, @protected, inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children. [...]
@protected, inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node. [...]
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep. [...]
toString({DiagnosticLevel minLevel =}) String
A string representation of this object. [...]
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a string representation of this node and its descendants. [...]
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object. [...]
toStringShort() String
A short, textual description of this widget.


operator ==(Object other) bool
The equality operator. [...]