Flutter - Text Outline
The Text widget displays a string of text with a single style in a flutter
app. But depending on the layout constraints the string might break across
multiple lines or might all be displayed on the same line. The style argument
is optional in a Text instance. When the style argument is omitted, the text
will use the style from the closest enclosing DefaultTextStyle. By default,
the Text is not selectable. But flutter developers can make a Text selectable
by wrapping a subtree with a SelectionArea widget.
The following flutter application development tutorial will demonstrate how we can draw an outline on a Text widget’s text. That means we will draw a stroke on a text. The outlined text shows a borderline at the edge of the text instance. Here we will assign a TextStyle object for the Text class style property value.
In the below flutter example code, we will use the TextStyle class foreground property to draw an outline at the edge of the Text widget’s text.
The TextStyle class represents an immutable style describing how to format and paint text.
The TextStyle class foreground property value is a Paint object which is the paint drawn as a foreground for the text. The color property is shorthand for Paint()..color = color.
The Paint class describes the style to use when drawing on a Canvas. The Paint class Paint() constructor constructs an empty Paint object with all fields initialized to their defaults.
The Paint class color property value is a Color object which is the color to use when stroking or filling a shape.
The Paint class style property value is a PaintingStyle enumeration value that determines whether to paint inside shapes, the edges of shapes, or both.
The PaintingStyle enumeration stroke const applies the Paint to the edge of the shape.
The Paint class strokeWidth property value is a double instance that defines how wide to make edges drawn when the style is set to PaintingStyle.stroke. The width is given in logical pixels measured in the direction orthogonal to the direction of the path. This property default value is 0.0, which corresponds to a hairline width.
So finally, the flutter app developers can create an outlined text using the Text class style property and TextStyle class foreground property.
The following flutter application development tutorial will demonstrate how we can draw an outline on a Text widget’s text. That means we will draw a stroke on a text. The outlined text shows a borderline at the edge of the text instance. Here we will assign a TextStyle object for the Text class style property value.
In the below flutter example code, we will use the TextStyle class foreground property to draw an outline at the edge of the Text widget’s text.
The TextStyle class represents an immutable style describing how to format and paint text.
The TextStyle class foreground property value is a Paint object which is the paint drawn as a foreground for the text. The color property is shorthand for Paint()..color = color.
The Paint class describes the style to use when drawing on a Canvas. The Paint class Paint() constructor constructs an empty Paint object with all fields initialized to their defaults.
The Paint class color property value is a Color object which is the color to use when stroking or filling a shape.
The Paint class style property value is a PaintingStyle enumeration value that determines whether to paint inside shapes, the edges of shapes, or both.
The PaintingStyle enumeration stroke const applies the Paint to the edge of the shape.
The Paint class strokeWidth property value is a double instance that defines how wide to make edges drawn when the style is set to PaintingStyle.stroke. The width is given in logical pixels measured in the direction orthogonal to the direction of the path. This property default value is 0.0, which corresponds to a hairline width.
So finally, the flutter app developers can create an outlined text using the Text class style property and TextStyle class foreground property.
main.dart
import 'package:flutter/material.dart';
void main(){
runApp(
MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text("Flutter - Outline Text")
),
body: Center(
child: Text(
"Lorem Ipsum is simply dummy text.",
style: TextStyle(
fontSize: 75,
foreground: Paint()
..style = PaintingStyle.stroke
..strokeWidth = 1.5
..color = Colors.pink
),
textAlign: TextAlign.center,
)
),
),
)
);
}