onPaint method
Implementation
@override
void onPaint(Canvas canvas, Size size) {
if (_backgroundPaint != null) {
canvas.drawRect(
Rect.fromLTRB(0, 0, size.width, size.height), _backgroundPaint!);
}
// execute all drawing commands
drawGridBackground(canvas);
compute();
_xAxisRenderer?.renderAxisLine(canvas);
_axisRendererLeft?.renderAxisLine(canvas);
_axisRendererRight?.renderAxisLine(canvas);
if (xAxis!.drawGridLinesBehindData) _xAxisRenderer?.renderGridLines(canvas);
if (_axisLeft!.drawGridLinesBehindData) {
_axisRendererLeft?.renderGridLines(canvas);
}
if (_axisRight!.drawGridLinesBehindData) {
_axisRendererRight?.renderGridLines(canvas);
}
if (xAxis!.enabled && xAxis!.drawLimitLineBehindData) {
_xAxisRenderer?.renderLimitLines(canvas);
}
if (_axisLeft!.enabled && _axisLeft!.drawLimitLineBehindData) {
_axisRendererLeft?.renderLimitLines(canvas);
}
if (_axisRight!.enabled && _axisRight!.drawLimitLineBehindData) {
_axisRendererRight?.renderLimitLines(canvas);
}
// make sure the data cannot be drawn outside the content-rect
canvas.save();
canvas.clipRect(viewPortHandler!.getContentRect());
renderer?.drawData(canvas);
if (!xAxis!.drawGridLinesBehindData) {
_xAxisRenderer?.renderGridLines(canvas);
}
if (!_axisLeft!.drawGridLinesBehindData) {
_axisRendererLeft?.renderGridLines(canvas);
}
if (!_axisRight!.drawGridLinesBehindData) {
_axisRendererRight?.renderGridLines(canvas);
}
// if highlighting is enabled
if (valuesToHighlight()) {
renderer?.drawHighlighted(canvas, indicesToHighlight);
}
// Removes clipping rectangle
canvas.restore();
renderer?.drawExtras(canvas);
if (xAxis!.enabled && !xAxis!.drawLimitLineBehindData) {
_xAxisRenderer?.renderLimitLines(canvas);
}
if (_axisLeft!.enabled && !_axisLeft!.drawLimitLineBehindData) {
_axisRendererLeft?.renderLimitLines(canvas);
}
if (_axisRight!.enabled && !_axisRight!.drawLimitLineBehindData) {
_axisRendererRight?.renderLimitLines(canvas);
}
_xAxisRenderer?.renderAxisLabels(canvas);
_axisRendererLeft?.renderAxisLabels(canvas);
_axisRendererRight?.renderAxisLabels(canvas);
if (_clipValuesToContent) {
canvas.save();
canvas.clipRect(viewPortHandler!.getContentRect());
renderer!.drawValues(canvas);
canvas.restore();
} else {
renderer!.drawValues(canvas);
}
legendRenderer!.renderLegend(canvas);
drawDescription(canvas, size);
drawMarkers(canvas);
}