paint method
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,
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);
final Canvas canvas = context.canvas;
final Tween<double> radiusTween = Tween<double>(
begin: _disabledThumbRadius,
end: enabledThumbRadius,
);
final ColorTween colorTween = ColorTween(
begin: sliderTheme.disabledThumbColor,
end: sliderTheme.thumbColor,
);
final Color color = colorTween.evaluate(enableAnimation)!;
final double radius = radiusTween.evaluate(enableAnimation);
final Tween<double> elevationTween = Tween<double>(
begin: elevation,
end: pressedElevation,
);
final double evaluatedElevation = elevationTween.evaluate(
activationAnimation,
);
final Path path =
Path()..addArc(
Rect.fromCenter(
center: center,
width: 2 * radius,
height: 2 * radius,
),
0,
math.pi * 2,
);
bool paintShadows = true;
assert(() {
if (debugDisableShadows) {
_debugDrawShadow(canvas, path, evaluatedElevation);
paintShadows = false;
}
return true;
}());
if (paintShadows) {
canvas.drawShadow(path, Colors.black, evaluatedElevation, true);
}
canvas.drawCircle(center, radius, Paint()..color = color);
}