GlassMaterialize class

Shows or hides a glass subtree with the materialize effect — the AnimatedOpacity idiom: flip visible and the widget animates itself.

GlassMaterialize(
  visible: showSearch,
  child: GlassButton.icon(icon: CupertinoIcons.search, onPressed: ...),
)

The entrance and exit run at the asymmetric durations measured from the native transition (GlassDefaults.materializeDuration / GlassDefaults.dematerializeDuration). There is no curve parameter: the choreography is a fixed set of staggered sub-curves (glass and content resolve at different times), which a single caller-supplied curve would scramble.

Under reduce motion the effect collapses to a quick cross-dissolve at GlassDefaults.animationDurationFast — a fade is not motion.

See GlassMaterializeTransition for the explicit, animation-driven form and the full description of the effect.

Inheritance

Constructors

GlassMaterialize({required bool visible, required Widget child, Duration duration = GlassDefaults.materializeDuration, Duration exitDuration = GlassDefaults.dematerializeDuration, Alignment alignment = Alignment.center, double scaleFrom = 1.15, double contentSigma = 8.0, bool maintainState = true, VoidCallback? onEnd, Key? key})
Creates a widget that shows or hides its glass child with the materialize effect.
const

Properties

alignment Alignment
Where the scale converges, matching Transform.scale's alignment.
final
child Widget
The subtree containing the glass to materialize.
final
contentSigma double
Peak gaussian sigma on the glass content, in logical pixels.
final
duration Duration
Duration of the entrance.
final
exitDuration Duration
Duration of the exit — the native dematerialize runs noticeably longer than its entrance, so the two are configured separately.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
maintainState bool
Whether the subtree stays mounted while fully hidden.
final
onEnd VoidCallback?
Called when a transition settles, in either direction.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scaleFrom double
Scale at full dematerialization; 1.0 disables the scale entirely.
final
visible bool
Whether the subtree is shown. Changing this starts the transition.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<GlassMaterialize>
Creates the mutable state for this widget at a given location in the tree.
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
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

Operators

operator ==(Object other) bool
The equality operator.
inherited