ShapeDecoration class Null safety
An immutable description of how to paint an arbitrary shape.
The ShapeDecoration class provides a way to draw a ShapeBorder, optionally filling it with a color or a gradient, optionally painting an image into it, and optionally casting a shadow.
The following example uses the Container widget from the widgets layer to
draw a white rectangle with a 24-pixel multicolor outline, with the text
"RGB" inside it:
Container(
decoration: ShapeDecoration(
color: Colors.white,
shape: Border.all(
color: Colors.red,
width: 8.0,
) + Border.all(
color: Colors.green,
width: 8.0,
) + Border.all(
color: Colors.blue,
width: 8.0,
),
),
child: const Text('RGB', textAlign: TextAlign.center),
)
See also:
- DecoratedBox and Container, widgets that can be configured with ShapeDecoration objects.
- BoxDecoration, a similar Decoration that is optimized for rectangles specifically.
- ShapeBorder, the base class for the objects that are used in the shape property.
- Inheritance
-
- Object
- Decoration
- ShapeDecoration
Constructors
-
ShapeDecoration({Color? color, DecorationImage? image, Gradient? gradient, List<
BoxShadow> ? shadows, required ShapeBorder shape}) -
Creates a shape decoration.
const
- ShapeDecoration.fromBoxDecoration(BoxDecoration source)
-
Creates a shape decoration configured to match a BoxDecoration.
factory
Properties
- color → Color?
-
The color to fill in the background of the shape.
final
- gradient → Gradient?
-
A gradient to use when filling the shape.
final
- hashCode → int
-
The hash code for this object.
read-onlyoverride
- image → DecorationImage?
-
An image to paint inside the shape (clipped to its outline).
final
- isComplex → bool
-
Whether this decoration is complex enough to benefit from caching its painting.
read-onlyoverride
- padding → EdgeInsetsGeometry
-
The inset space occupied by the shape's border.
read-onlyoverride
- runtimeType → Type
-
A representation of the runtime type of the object.
read-onlyinherited
-
shadows
→ List<
BoxShadow> ? -
A list of shadows cast by the shape.
final
- shape → ShapeBorder
-
The shape to fill the color, gradient, and image into and to cast as
the shadows.
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.
override
-
getClipPath(
Rect rect, TextDirection textDirection) → Path -
Returns a closed Path that describes the outer edge of this decoration.
override
-
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.
override
-
lerpFrom(
Decoration? a, double t) → ShapeDecoration? -
Linearly interpolates from another Decoration (which may be of a
different class) to
this
.override -
lerpTo(
Decoration? b, double t) → ShapeDecoration? -
Linearly interpolates from
this
to another Decoration (which may be of a different class).override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent 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
Static Methods
-
lerp(
ShapeDecoration? a, ShapeDecoration? b, double t) → ShapeDecoration? -
Linearly interpolate between two shapes.
override