showPopover<T> function
OverlayCompleter<T?>
showPopover<T>({
- required BuildContext context,
- required AlignmentGeometry alignment,
- required WidgetBuilder builder,
- Offset? position,
- AlignmentGeometry? anchorAlignment,
- PopoverConstraint widthConstraint = PopoverConstraint.flexible,
- PopoverConstraint heightConstraint = PopoverConstraint.flexible,
- Key? key,
- bool rootOverlay = true,
- bool modal = true,
- bool barrierDismissable = true,
- Clip clipBehavior = Clip.none,
- Object? regionGroupId,
- Offset? offset,
- AlignmentGeometry? transitionAlignment,
- EdgeInsetsGeometry? margin,
- bool follow = true,
- bool consumeOutsideTaps = true,
- ValueChanged<
PopoverOverlayWidgetState> ? onTickFollow, - bool allowInvertHorizontal = true,
- bool allowInvertVertical = true,
- bool dismissBackdropFocus = true,
- Duration? showDuration,
- Duration? dismissDuration,
- OverlayBarrier? overlayBarrier,
- OverlayHandler? handler,
Displays a popover overlay with specified alignment and behavior.
Parameters:
context(BuildContext, required): Widget context.alignment(AlignmentGeometry, required): Popover alignment relative to anchor.builder(WidgetBuilder, required): Builds popover content.position(Offset?, optional): Explicit position.anchorAlignment(AlignmentGeometry?, optional): Anchor alignment point.widthConstraint(PopoverConstraint, optional): Width constraint mode. Default: flexible.heightConstraint(PopoverConstraint, optional): Height constraint mode. Default: flexible.key(Key?, optional): Widget key.rootOverlay(bool, optional): Use root overlay. Default: true.modal(bool, optional): Modal behavior. Default: true.barrierDismissable(bool, optional): Tap outside to dismiss. Default: true.clipBehavior(Clip, optional): Clipping behavior. Default: Clip.none.regionGroupId(Object?, optional): Region grouping identifier.offset(Offset?, optional): Additional offset.transitionAlignment(AlignmentGeometry?, optional): Transition origin.margin(EdgeInsetsGeometry?, optional): Popover margin.follow(bool, optional): Follow anchor movement. Default: true.consumeOutsideTaps(bool, optional): Consume outside taps. Default: true.onTickFollow(ValueChanged<PopoverOverlayWidgetState>?, optional): Follow callback.allowInvertHorizontal(bool, optional): Allow horizontal inversion. Default: true.allowInvertVertical(bool, optional): Allow vertical inversion. Default: true.dismissBackdropFocus(bool, optional): Dismiss on backdrop focus. Default: true.showDuration(Duration?, optional): Show animation duration.dismissDuration(Duration?, optional): Dismiss animation duration.overlayBarrier(OverlayBarrier?, optional): Custom barrier configuration.handler(OverlayHandler?, optional): Custom overlay handler.
Returns: OverlayCompleter<T?> — handle to control the popover.
Example:
showPopover(
context: context,
alignment: Alignment.bottomCenter,
builder: (context) => Text('Popover content'),
);
Implementation
OverlayCompleter<T?> showPopover<T>({
required BuildContext context,
required AlignmentGeometry alignment,
required WidgetBuilder builder,
Offset? position,
AlignmentGeometry? anchorAlignment,
PopoverConstraint widthConstraint = PopoverConstraint.flexible,
PopoverConstraint heightConstraint = PopoverConstraint.flexible,
Key? key,
bool rootOverlay = true,
bool modal = true,
bool barrierDismissable = true,
Clip clipBehavior = Clip.none,
Object? regionGroupId,
Offset? offset,
AlignmentGeometry? transitionAlignment,
EdgeInsetsGeometry? margin,
bool follow = true,
bool consumeOutsideTaps = true,
ValueChanged<PopoverOverlayWidgetState>? onTickFollow,
bool allowInvertHorizontal = true,
bool allowInvertVertical = true,
bool dismissBackdropFocus = true,
Duration? showDuration,
Duration? dismissDuration,
OverlayBarrier? overlayBarrier,
OverlayHandler? handler,
}) {
handler ??= OverlayManager.of(context);
return handler.show<T>(
context: context,
alignment: alignment,
builder: builder,
position: position,
anchorAlignment: anchorAlignment,
widthConstraint: widthConstraint,
heightConstraint: heightConstraint,
key: key,
rootOverlay: rootOverlay,
modal: modal,
barrierDismissable: barrierDismissable,
clipBehavior: clipBehavior,
regionGroupId: regionGroupId,
offset: offset,
transitionAlignment: transitionAlignment,
margin: margin,
follow: follow,
consumeOutsideTaps: consumeOutsideTaps,
onTickFollow: onTickFollow,
allowInvertHorizontal: allowInvertHorizontal,
allowInvertVertical: allowInvertVertical,
dismissBackdropFocus: dismissBackdropFocus,
showDuration: showDuration,
dismissDuration: dismissDuration,
overlayBarrier: overlayBarrier,
);
}