BarChartPainter class

A custom painter for rendering bar charts with animations and interactions.

This painter handles the rendering of bar charts including:

  • Single and grouped bar layouts
  • Smooth animations with staggered effects
  • Interactive selection and hover states
  • Rounded corners and gradient fills
  • Professional grid and axis rendering

The painter extends BaseChartPainter to inherit common chart rendering functionality like grid, axes, and labels.

See also:

Inheritance

Constructors

BarChartPainter({required ChartTheme theme, required List<ChartDataSet> dataSets, bool showGrid = true, bool showAxis = true, bool showLabel = true, double barWidth = 20.0, double borderRadius = 8.0, bool isGrouped = false, double animationProgress = 1.0, ChartInteractionResult? selectedBar, ChartInteractionResult? hoveredBar})
Creates a bar chart painter.

Properties

animationProgress double
The animation progress value between 0.0 and 1.0.
final
barWidth double
The width of each bar in pixels.
final
borderRadius double
The border radius for rounded bar corners.
final
dataSets List<ChartDataSet>
finalinherited
hashCode int
The hash code for this object.
no setterinherited
hoveredBar ChartInteractionResult?
The currently hovered bar interaction result.
final
isGrouped bool
Whether bars should be grouped when multiple data sets are provided.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedBar ChartInteractionResult?
The currently selected bar interaction result.
final
semanticsBuilder SemanticsBuilderCallback?
Returns a function that builds semantic information for the picture drawn by this painter.
no setterinherited
showAxis bool
finalinherited
showGrid bool
finalinherited
showLabel bool
finalinherited
theme ChartTheme
finalinherited

Methods

addListener(VoidCallback listener) → void
Register a closure to be notified when it is time to repaint.
inherited
drawAxes(Canvas canvas, Size size, double minX, double maxX, double minY, double maxY) → void
Draw axes
inherited
drawAxisLabels(Canvas canvas, Size size, double minX, double maxX, double minY, double maxY) → void
Draw axis labels (optimized with text style caching)
inherited
drawGrid(Canvas canvas, Size size, double minX, double maxX, double minY, double maxY) → void
Draw grid lines (optimized with batched operations)
inherited
getDataBounds(double getValue(ChartDataPoint), double combine(double, double)) → void
Get data bounds
inherited
hitTest(Offset position) bool?
Called whenever a hit test is being performed on an object that is using this custom paint delegate.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paint(Canvas canvas, Size size) → void
Called whenever the object needs to paint. The given Canvas has its coordinate space configured such that the origin is at the top left of the box. The area of the box is the size of the size argument.
override
pointToCanvas(ChartDataPoint point, Size size, double minX, double maxX, double minY, double maxY) Offset
Convert data point to canvas coordinates (optimized)
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that the object notifies when it is time to repaint.
inherited
shouldRebuildSemantics(covariant CustomPainter oldDelegate) bool
Called whenever a new instance of the custom painter delegate class is provided to the RenderCustomPaint object, or any time that a new CustomPaint object is created with a new instance of the custom painter delegate class (which amounts to the same thing, because the latter is implemented in terms of the former).
inherited
shouldRepaint(covariant BarChartPainter oldDelegate) bool
Called whenever a new instance of the custom painter delegate class is provided to the RenderCustomPaint object, or any time that a new CustomPaint object is created with a new instance of the custom painter delegate class (which amounts to the same thing, because the latter is implemented in terms of the former).
override
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited