sliver_tree/_animation_coordinator library
Internal: facade over the four animation sources (standalone, per-operation groups, bulk, slide), plus the cross-source state and dispatch logic that span them.
Owns:
- Cross-source per-nid state (
_fullExtentByNid,_isPendingDeletionByNid, the union mirrors_isAnimatingByNid/_isExitingByNid). - The animation generation counter
_animationGeneration(the broad counter; the bulk-specific counter lives on BulkAnimator). - The animating-keys cache + sparse-tracking lists used by
_ensureAnimatingKeys. - The animation-listener channel (
addListener/removeListener/notifyListeners). - The four sub-coordinators (composition, not inheritance).
Implements AnimationReader so RenderSliverTree can hold an abstract reference instead of the concrete coordinator (or the controller).
Status-change handlers and the standalone tick body STAY on
TreeController — they cross structure / order / structural-notification
concerns. The coordinator wires them as callbacks (see constructor).
Classes
-
AnimationCoordinator<
TKey> -
AnimationReader<
TKey> - Narrow read interface that the render layer depends on instead of TreeController. Allows render-layer tests to stub animation reads without standing up a full controller.