DashedDecoration class
A custom Decoration that draws a dashed (or dotted) border
around a widget such as a Container, Card, or any Box widget.
Supports:
- Solid dashes and dot-dash patterns
- Configurable spacing, thickness, corner radius
- Optional gradient or solid color
- Animation support with marching ants effect (v1.1.0)
- Custom dash patterns with arrays (v1.1.0)
- Performance optimization with path caching (v1.1.0)
Example:
Container(
decoration: DashedDecoration(
step: 4,
span: 2,
strokeWidth: 1,
radius: Radius.circular(12),
color: Colors.blue,
),
)
// With animation
Container(
decoration: DashedDecoration.animated(
step: 4,
span: 2,
animationOffset: animationValue * 10,
color: Colors.blue,
),
)
// With custom pattern
Container(
decoration: DashedDecoration.pattern(
dashPattern: [8, 4, 2, 4],
color: Colors.blue,
),
)
- Inheritance
-
- Object
- Decoration
- DashedDecoration
Constructors
- DashedDecoration({Gradient? gradient, Color? color, double step = 2.0, double span = 2.0, int pointCount = 0, double? pointWidth, Radius? radius, double strokeWidth = 1.0, double animationOffset = 0.0, bool enableCaching = true})
-
A custom
Decorationthat draws a dashed (or dotted) border around a widget such as aContainer,Card, or anyBoxwidget.const - DashedDecoration.animated({Gradient? gradient, Color? color, double step = 2.0, double span = 2.0, int pointCount = 0, double? pointWidth, Radius? radius, double strokeWidth = 1.0, required double animationOffset, bool enableCaching = true})
-
Creates an animated dashed decoration with marching ants effect.
const
-
DashedDecoration.pattern({Gradient? gradient, Color? color, required List<
double> ? dashPattern, Radius? radius, double strokeWidth = 1.0, double animationOffset = 0.0, bool enableCaching = true}) -
Creates a dashed decoration with a custom dash pattern.
const
Properties
- animationOffset → double
-
Animation offset for marching ants effect.
final
- color → Color?
-
Border color. Used only if gradient is null.
final
-
dashPattern
→ List<
double> ? -
Custom dash pattern array. If provided, overrides step/span/pointCount.
Array represents alternating dash lengths and gaps.
final
- enableCaching → bool
-
Enable path caching for performance optimization.
final
- gradient → Gradient?
-
Gradient to apply to the border.
final
- hashCode → int
-
The hash code for this object.
no setteroverride
- isComplex → bool
-
Whether this decoration is complex enough to benefit from caching its painting.
no setterinherited
- padding → EdgeInsetsGeometry
-
Returns the insets to apply when using this decoration on a box
that has contents, so that the contents do not overlap the edges
of the decoration. For example, if the decoration draws a frame
around its edge, the padding would return the distance by which
to inset the children so as to not overlap the frame.
no setterinherited
- pointCount → int
-
Number of dots to appear after each dash.
final
- pointWidth → double?
-
Length of each dot. If null, uses Paint.strokeWidth.
final
- radius → Radius?
-
Border radius (corner rounding).
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- span → double
-
Spacing between each segment or dot.
final
- step → double
-
Length of each solid dash segment.
final
- strokeWidth → double
-
Thickness of the border.
final
Methods
-
createBoxPainter(
[VoidCallback? onChanged]) → BoxPainter -
Returns a BoxPainter that will paint this decoration.
override
-
debugAssertIsValid(
) → bool -
In debug mode, throws an exception if the object is not in a
valid configuration. Otherwise, returns true.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
getClipPath(
Rect rect, TextDirection textDirection) → Path -
Returns a closed Path that describes the outer edge of this decoration.
inherited
-
hitTest(
Size size, Offset position, {TextDirection? textDirection}) → bool -
Tests whether the given point, on a rectangle of a given size,
would be considered to hit the decoration or not. For example,
if the decoration only draws a circle, this function might
return true if the point was inside the circle and false
otherwise.
inherited
-
lerpFrom(
Decoration? a, double t) → Decoration? -
Linearly interpolates from another Decoration (which may be of a
different class) to
this.inherited -
lerpTo(
Decoration? b, double t) → Decoration? -
Linearly interpolates from
thisto another Decoration (which may be of a different class).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
-
toStringShort(
) → String -
A brief description of this object, usually just the runtimeType and the
hashCode.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
override