LiveChart normally follows the clock on every display frame. For a chart inside
a long vertical list, the experimental isFrameLoopActive prop lets the parent
give scrolling priority to the UI thread. Pass a SharedValue<boolean> and set
it to false during the drag or momentum scroll. The chart keeps its data and
gestures mounted, then catches up when the value becomes true.
data and value continue. Use static for charts
that should have no continuous animation at rest; use isFrameLoopActive for a
temporary pause while a live chart remains mounted.
Live example: The Scroll interaction
demo
has a Gate during scroll control. Freeze feed isolates idle chart
behavior, and Frame stats displays the active engine callback rate. Use
the LiveChart window presets to compare 30-second, 60-second, and one-day
idle publication rates on the same device.
Count engine publications during development
Pass aSharedValue<LiveChartFrameStats> to debugFrameStats to count active
engine frames. published counts callbacks that changed tracked engine values;
skipped counts callbacks whose tracked values were already settled. When the
frame gate is off, all three totals stop increasing. The counter does not measure
every Skia redraw and adds one SharedValue write per active frame, so leave it
out of production performance traces.