BidiRichText class
A rich text widget that automatically detects and sets text direction based on content.
BidiRichText wraps Flutter's standard RichText widget and automatically
determines whether text should be displayed in right-to-left (RTL) or
left-to-right (LTR) direction by analysing the content of the TextSpan
tree.
Breaking change (v2.0.0)
BidiRichText no longer extends RichText. It extends StatelessWidget
and builds a RichText internally. If your code relied on
bidiRichTextInstance is RichText type checks, update them — all widget
behaviour is identical.
Example:
BidiRichText(
text: TextSpan(
text: 'Hello ',
style: TextStyle(color: Colors.black),
children: [
TextSpan(text: 'world!', style: TextStyle(fontWeight: FontWeight.bold)),
],
),
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- BidiRichText
Constructors
- BidiRichText({required InlineSpan text, Key? key, TextAlign textAlign = TextAlign.start, bool softWrap = true, TextOverflow overflow = TextOverflow.clip, TextScaler textScaler = TextScaler.noScaling, int? maxLines, Locale? locale, StrutStyle? strutStyle, TextWidthBasis textWidthBasis = TextWidthBasis.parent, TextHeightBehavior? textHeightBehavior, SelectionRegistrar? selectionRegistrar, Color? selectionColor, int? sampleLength = 50})
-
Creates a BidiRichText widget.
const
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- 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
- maxLines → int?
-
Maximum number of lines to show.
final
- overflow → TextOverflow
-
How visual overflow should be handled.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sampleLength → int?
-
Maximum number of characters to sample for direction detection.
final
- selectionColor → Color?
-
The color to use when painting the selection.
final
- selectionRegistrar → SelectionRegistrar?
-
The SelectionRegistrar this rich text is subscribed to.
final
- softWrap → bool
-
Whether the text should break at soft line breaks.
final
- strutStyle → StrutStyle?
-
The strut style used for the vertical layout.
final
- text → InlineSpan
-
The text to display, as an InlineSpan (typically a TextSpan).
final
- textAlign → TextAlign
-
How the text should be aligned horizontally.
final
- textDirection → TextDirection
-
Determines text direction from the InlineSpan tree.
no setter
- textHeightBehavior → TextHeightBehavior?
-
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
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
inherited
-
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
Static Methods
-
extractTextFromSpan(
InlineSpan span) → String - Extracts all text content from a InlineSpan tree.