GlassMorphTrigger class
Wraps the widget a GlassModalSheet morphs out of, so the trigger can empty itself while the morph runs and take the hit when the droplet comes home.
The builder receives a GlassMorphAnchor to pass to
GlassModalSheet.show as morphFrom:
GlassMorphTrigger(
builder: (context, anchor) => GlassButton(
onTap: () => GlassModalSheet.show(
context: context,
morphFrom: anchor,
builder: (context) => const MySheetBody(),
),
child: const Icon(CupertinoIcons.add),
),
)
While the sheet is presented the child paints nothing — the morph's anchor
blob stands in for it, so the two never appear at once. When the droplet
lands, the child is restored and this widget runs the rest of the closing
bounce on its own ticker, so it keeps easing home after the presented route
is gone. The button is tappable throughout that tail, exactly as GlassMenu's
trigger is: grabbing it cancels the bounce and opens again.
Without this wrapper GlassModalSheet.show still morphs (pass
morphFromRect), but it blooms from a point instead of stretching a
teardrop, because the anchor blob would otherwise duplicate a trigger it
cannot hide.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- GlassMorphTrigger
- Available extensions
Constructors
- GlassMorphTrigger({Key? key, required Widget builder(BuildContext context, GlassMorphAnchor anchor)})
-
Creates a new GlassMorphTrigger.
const
Properties
- builder → Widget Function(BuildContext context, GlassMorphAnchor anchor)
-
Builds the trigger, given the GlassMorphAnchor to present with.
final
- 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(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< GlassMorphTrigger> -
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
-
glassContextMenu(
{Key? key, required List< Widget> actions, WidgetBuilder? previewBuilder, bool enabled = true, bool enableHaptics = true, double borderRadius = 32.0, double? previewBorderRadius, double rowBorderRadius = 16.0, BorderRadius? rowCorners, Color? originSlotColor, Color? backgroundColor, LiquidGlassSettings? settings, GlassQuality? quality, double backdropBlur = 0.0, Color? barrierColor, VoidCallback? onOpened, VoidCallback? onDismissed, Duration longPressDuration = const Duration(milliseconds: 700)}) → Widget -
Available on Widget, provided by the GlassContextMenuExtension extension
Wraps this widget in a GlassContextMenu displayingactionson long-press or right-click. -
glassFullScreenCover(
{required bool isPresented, VoidCallback? onDismiss, required WidgetBuilder content, bool enableSwipeToDismiss = true, double dismissThreshold = 140.0, LiquidGlassSettings? settings, GlassQuality? quality}) → Widget -
Available on Widget, provided by the GlassFullScreenCoverExtension extension
Presents a full-viewport modal cover wheneverisPresentedis true. -
Available on Widget, provided by the GlassNavigationTitleExtension extension
Annotates this widget with a navigation title that drives enclosing or descendant GlassAppBar / GlassAppBar.pinned bars (when their explicittitleis null) as well as header accessibility semantics. -
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