paint method

  1. @override
void paint(
  1. PaintingContext context,
  2. Offset offset
)
override

Default paint implementation.

RenderBox paints no self-content; it forwards painting to its RenderBox children. Subclasses override to draw their own content.

Implementation

@override
void paint(PaintingContext context, Offset offset) {
  final origin = offset + Offset(x, y);

  // Create rect for decoration painting (integer cell coordinates).
  final rect = Rect.fromLTWH(origin.dx, origin.dy, width, height);

  if (_position == DecorationPosition.background) {
    // Paint decoration behind child
    _decoration.paint(context.canvas, rect);

    // Paint child
    if (_child != null) {
      context.paintChild(_child!, origin);
    }
  } else {
    // Paint child first
    if (_child != null) {
      context.paintChild(_child!, origin);
    }

    // Paint decoration in front of child
    _decoration.paint(context.canvas, rect);
  }
}