layout method
Layout this component.
Implementation
@override
void layout(Rectangle<int> componentBounds, Rectangle<int> drawAreaBounds) {
super.layout(componentBounds, drawAreaBounds);
// We are purposely clearing the viewport starting domain and data size
// post layout.
//
// Originally we set a flag in [setScaleViewport] to recalculate viewport
// settings on next scale update and then reset the flag. This doesn't work
// because chart's measure cycle provides different ranges to the scale,
// causing the scale to update multiple times before it is finalized after
// layout.
//
// By resetting the viewport after layout, we guarantee the correct range
// was used to apply the viewport and behaviors that update the viewport
// based on translate and scale changes will not be affected (pan/zoom).
(scale! as OrdinalScale).setViewport(null, null);
}