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 originX = offset.dx + x;
  final originY = offset.dy + y;
  final viewportW = _viewportWidth;
  final viewportH = _viewportHeight;

  final c = child;
  if (c != null) {
    // Paint child, translated by -offset, clipped to viewport.
    final scrollX = _scrollDirection == Axis.horizontal
        ? -_controller.offset.round()
        : 0;
    final scrollY = _scrollDirection == Axis.vertical
        ? -_controller.offset.round()
        : 0;

    context.canvas.save();
    context.canvas.clipRect(
      Rect.fromLTWH(originX, originY, viewportW, viewportH),
    );
    context.paintChild(c, Offset(originX + scrollX, originY + scrollY));
    context.canvas.restore();
  }

  if (_showScrollbar) {
    _paintScrollbar(context, originX, originY, viewportW, viewportH);
  }
}