paint method

  1. @override
void paint(
  1. PaintingContext context,
  2. Offset center, {
  3. required Animation<double> activationAnimation,
  4. required Animation<double> enableAnimation,
  5. required bool isDiscrete,
  6. required TextPainter labelPainter,
  7. required RenderBox parentBox,
  8. required AnnotatedSliderThemeData sliderTheme,
  9. required TextDirection textDirection,
  10. required double value,
  11. required double textScaleFactor,
  12. required Size sizeWithOverflow,
})
override

Implementation

@override
void paint(
  PaintingContext context,
  Offset center, {
  required Animation<double> activationAnimation,
  required Animation<double> enableAnimation,
  required bool isDiscrete,
  required TextPainter labelPainter,
  required RenderBox parentBox,
  required AnnotatedSliderThemeData sliderTheme,
  required TextDirection textDirection,
  required double value,
  required double textScaleFactor,
  required Size sizeWithOverflow,
}) {
  assert(sliderTheme.disabledThumbColor != null);
  assert(sliderTheme.thumbColor != null);
  assert(sliderTheme.thumbSize != null);

  final ColorTween colorTween = ColorTween(
    begin: sliderTheme.disabledThumbColor,
    end: sliderTheme.thumbColor,
  );
  final Color color = colorTween.evaluate(enableAnimation)!;

  final Canvas canvas = context.canvas;
  final Size thumbSize =
      sliderTheme.thumbSize!.resolve(
        <WidgetState>{},
      )!; // This is resolved in the paint method.
  final RRect rrect = RRect.fromRectAndRadius(
    Rect.fromCenter(
      center: center,
      width: thumbSize.width,
      height: thumbSize.height,
    ),
    Radius.circular(thumbSize.shortestSide / 2),
  );
  canvas.drawRRect(rrect, Paint()..color = color);
}