Welcome to the Flutter feedback portal. We’re happy you’re here! If you have feedback on how to improve the Flutter, we’d love to hear it!>
Thanks for joining our community and helping improve Syncfusion products!
I reported an issue here https://github.com/syncfusion/flutter-widgets/issues/1331 but did not receive responses so I re-post it here.
The problem: after debug and reviewing the code I think the condition withInYRange in the code below is not needed and should be removed. It causes repaint a lot of segments even when they are not visible. The condition withInXRange is enough to cover all the columns that should be drawn. Any column that is not
column_painter.dart
for (int pointIndex = 0; pointIndex < dataPoints.length; pointIndex++) {point = dataPoints[pointIndex];
final bool withInXRange =
withInRange(point.xValue, seriesRendererDetails.xAxisDetails!);
// ignore: unnecessary_null_comparison
final bool withInYRange = point != null &&
point.yValue != null &&
withInRange(point.yValue, seriesRendererDetails.yAxisDetails!);
if (withInXRange || withInYRange) {seriesRendererDetails.calculateRegionData(stateProperties,
seriesRendererDetails, painterKey.index, point, pointIndex);
if (point.isVisible && !point.isGap) {seriesRendererDetails.drawSegment(
canvas,
seriesRenderer._createSegments(point, segmentIndex += 1,
painterKey.index, animationFactor));
}
}
}