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:

Inheritance

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