CustomText class
A text widget that decorates substrings and enables tap, long-press and/or hover gestures on them based on flexible definitions.
This is useful for making certain portions of text such as URLs, email addresses or phone numbers clickable, or for only highlighting substrings with colours and different font settings.
CustomText(
'URL: https://example.com/\n'
'Email: foo@example.com\n'
'Tel: +1-012-3456-7890',
definitions: const [
TextDefinition(matcher: UrlMatcher()),
TextDefinition(matcher: EmailMatcher()),
TextDefinition(matcher: TelMatcher()),
],
matchStyle: const TextStyle(color: Colors.indigo),
hoverStyle: const TextStyle(color: Colors.lightBlue),
onTap: (details) => launchUrlString(details.actionText),
)
This widget also has the CustomText.spans
constructor,
which targets a list of InlineSpans instead of plain text.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- CustomText
Constructors
-
CustomText(String text, {Key? key, required List<
Definition> definitions, CustomSpanBuilder? preBuilder, ParserOptions parserOptions = const ParserOptions(), TextStyle? style, TextStyle? matchStyle, TextStyle? tapStyle, TextStyle? hoverStyle, GestureCallback? onTap, GestureCallback? onLongPress, GestureCallback? onGesture, Duration? longPressDuration, bool preventBlocking = false, StrutStyle? strutStyle, TextAlign? textAlign, TextDirection? textDirection, Locale? locale, bool? softWrap, TextOverflow? overflow, TextScaler? textScaler, int? maxLines, String? semanticsLabel, TextWidthBasis? textWidthBasis, TextHeightBehavior? textHeightBehavior, Color? selectionColor}) -
Creates a text widget that decorates substrings and enables tap,
long-press and/or hover gestures on them based on flexible definitions.
const
-
CustomText.spans({Key? key, required List<
InlineSpan> spans, required List<Definition> definitions, ParserOptions parserOptions = const ParserOptions(), TextStyle? style, TextStyle? matchStyle, TextStyle? tapStyle, TextStyle? hoverStyle, GestureCallback? onTap, GestureCallback? onLongPress, GestureCallback? onGesture, Duration? longPressDuration, bool preventBlocking = false, StrutStyle? strutStyle, TextAlign? textAlign, TextDirection? textDirection, Locale? locale, bool? softWrap, TextOverflow? overflow, TextScaler? textScaler, int? maxLines, String? semanticsLabel, TextWidthBasis? textWidthBasis, TextHeightBehavior? textHeightBehavior, Color? selectionColor}) -
Creates a text widget that decorates part of the provided
InlineSpans and enables tap, long-press and/or hover
gestures on them based on flexible definitions.
const
Properties
-
definitions
→ List<
Definition> -
Definitions that specify rules for parsing, appearance and actions.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- hoverStyle → TextStyle?
-
The default text style used for matched strings while they are
under the mouse pointer.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- locale → Locale?
-
Used to select a font when the same Unicode character can
be rendered differently, depending on the locale.
final
- longPressDuration → Duration?
-
The duration before a tap is regarded as a long-press and the
onLongPress function is called.
final
- matchStyle → TextStyle?
-
The default text style for matched strings.
final
- maxLines → int?
-
An optional maximum number of lines for the text to span,
wrapping if necessary.
final
- onGesture → GestureCallback?
-
The callback function called when a gesture happens on a string.
final
- onLongPress → GestureCallback?
-
The callback function called when a matched string is long-pressed.
final
- onTap → GestureCallback?
-
The callback function called when a matched string is tapped.
final
- overflow → TextOverflow?
-
How visual overflow should be handled.
final
- parserOptions → ParserOptions
-
The options for RegExp that configure how regular expressions
are treated.
final
- preBuilder → CustomSpanBuilder?
-
A builder function to build a TextSpan to which styles and
gesture actions are applied.
final
- preventBlocking → bool
-
Whether to use an isolate for parsing to avoid blocking of the UI.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selectionColor → Color?
-
The color to use when painting the selection.
final
- semanticsLabel → String?
-
An alternative semantics label for this text.
final
- softWrap → bool?
-
Whether the text should break at soft line breaks.
final
-
spans
→ List<
InlineSpan> ? -
The list of InlineSpans to which styles and gesture actions
are applied.
final
- strutStyle → StrutStyle?
-
The strut style to use.
final
- style → TextStyle?
-
The text style for strings that did not match any match patterns.
final
- tapStyle → TextStyle?
-
The default text style used for tappable strings while they are
being pressed.
final
- text → String?
-
The text to which styles and gesture actions are applied.
final
- textAlign → TextAlign?
-
How the text should be aligned horizontally.
final
- textDirection → TextDirection?
-
The directionality of the text.
final
- textHeightBehavior → TextHeightBehavior?
-
Defines how to apply TextStyle.height over and under text.
final
- textScaler → TextScaler?
-
The font scaling strategy to use when laying out and
rendering the text.
final
- textWidthBasis → TextWidthBasis?
-
Defines how to measure the width of the rendered text.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< CustomText> -
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}) → 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