TTooltip class

A customizable tooltip with rich content and positioning options.

TTooltip provides an advanced tooltip widget with:

  • Auto-positioning based on available space
  • Manual position control (top/bottom/left/right)
  • Rich content support (text or custom widgets)
  • Icons and custom styling
  • Hover or tap trigger modes
  • Interactive tooltips
  • Configurable delays and durations
  • Arrow indicators

Basic Usage

TTooltip(
  message: 'Click to edit',
  child: IconButton(
    icon: Icon(Icons.edit),
    onPressed: () {},
  ),
)

With Custom Position

TTooltip(
  message: 'This is a tooltip',
  position: TTooltipPosition.right,
  icon: Icons.info,
  child: Text('Hover me'),
)

Interactive Tooltip

TTooltip(
  message: 'Click anywhere to close',
  interactive: true,
  triggerMode: TTooltipTriggerMode.tap,
  child: ElevatedButton(
    onPressed: () {},
    child: Text('Show Tooltip'),
  ),
)

See also:

Inheritance
Mixed-in types
Available extensions

Constructors

TTooltip({Key? key, required String message, required Widget child, Widget? richMessage, IconData? icon, TTooltipPosition position = TTooltipPosition.auto, Color? color, TTooltipSize size = TTooltipSize.small, Duration showDelay = const Duration(milliseconds: 100), Duration hideDelay = const Duration(milliseconds: 50), Duration waitDuration = Duration.zero, Duration showDuration = const Duration(seconds: 3), TTooltipTriggerMode triggerMode = TTooltipTriggerMode.hover, bool enableFeedback = true, bool excludeFromSemantics = false, Decoration? decoration, TextStyle? textStyle, TextAlign? textAlign, EdgeInsetsGeometry margin = const EdgeInsets.all(0), EdgeInsets? padding, double verticalOffset = 5, bool preferBelow = false, bool enableHapticFeedback = false, bool showArrow = true, bool interactive = false, double maxWidth = 250.0, VoidCallback? onShow, VoidCallback? onHide, TVariant? type, bool disabled = false})
Creates a tooltip.
const

Properties

child → Widget
The widget that triggers the tooltip.
final
color → Color?
Custom color for the tooltip.
final
decoration → Decoration?
Custom decoration for the tooltip.
final
disabled → bool
Whether the tooltip is disabled.
final
enableFeedback → bool
Whether to provide haptic feedback.
final
enableHapticFeedback → bool
Whether to enable haptic feedback on show.
final
excludeFromSemantics → bool
Whether to exclude from semantics.
final
hashCode → int
The hash code for this object.
no setterinherited
hideDelay → Duration
Delay before hiding the tooltip.
final
icon → IconData?
Optional icon to display in the tooltip.
final
interactive → bool
Whether the tooltip is interactive (can be clicked).
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
margin → EdgeInsetsGeometry
Margin around the tooltip.
final
maxWidth → double
Maximum width of the tooltip.
final
message → String
The text message to display in the tooltip.
final
offset → double
Offset from the target widget.
no setteroverride
onHide → VoidCallback?
Callback fired when the tooltip is hidden.
final
onShow → VoidCallback?
Callback fired when the tooltip is shown.
final
padding → EdgeInsets?
Padding inside the tooltip.
final
popupAlignment → TPopupAlignment
Preferred alignment of the popup.
no setteroverride
popupMode → TPopupMode?
Preferred display mode of the popup.
no setterinherited
position → TTooltipPosition
The position of the tooltip relative to the child.
final
preferBelow → bool
Whether to prefer showing below the child.
final
richMessage → Widget?
Rich content widget to display instead of plain text.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
showArrow → bool
Whether to show the arrow indicator.
final
showCloseButton → bool
Whether to show a close button in the popup.
no setteroverride
showDelay → Duration
Delay before showing the tooltip.
final
showDuration → Duration
Duration to show the tooltip (for tap mode).
final
size → TTooltipSize
The size of the tooltip.
final
textAlign → TextAlign?
Text alignment for the message.
final
textStyle → TextStyle?
Custom text style for the message.
final
triggerMode → TTooltipTriggerMode
How the tooltip is triggered (hover or tap).
final
type → TVariant?
The variant type for theming.
final
verticalOffset → double
Vertical offset from the child.
final
waitDuration → Duration
Wait duration before the tooltip can be shown again.
final

Methods

box({double minW = 0.0, double minH = 0.0, double maxW = double.infinity, double maxH = double.infinity}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a ConstrainedBox to apply layout constraints.
center({bool when = true}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Center widget.
createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → State<TTooltip>
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
expanded({int flex = 1}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in an Expanded widget.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
padding([double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0]) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Padding with flexible edge control.
paddingSymmetric({double h = 0.0, double v = 0.0}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Padding with symmetric horizontal and vertical spacing.
size({double? w, double? h}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a SizedBox to apply fixed width and/or height.
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
visible(bool visible, {bool maintainState = false}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Visibility widget.
when(bool condition) → Widget

Available on Widget, provided by the WidgetX extension

Returns this widget if condition is true, otherwise returns SizedBox.shrink(). Usage: Text('Hello').when(isVisible)

Operators

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