hasActiveFlipSlides property
Internal-use-only: whether any FLIP slide is in flight, EXCLUDING a held make-room preview.
GHOST-LIFECYCLE READ, the boolean companion to
getFlipSlideDeltaNid. Because a preview offset is HELD rather than
decaying, hasActiveSlides stays true from a drag's first resolve
to its release; anything that must observe "the FLIP slides have
finished" has to read this instead. Five consumers depend on it:
the render object's two edge-ghost clearAll gates (Step 9 and
layout Step 0b), the sliver element's settle-transition layout
(which is the only thing that schedules that cleanup), and the
element's two stale-eviction gates, FLIP-only because a held
preview would otherwise suspend eviction for a whole drag.
Every OTHER consumer must keep reading hasActiveSlides: paint,
hit-testing and the painted-truth snapshot all care about where
rows are painted, and a preview moves them. Retention is the split
case: RenderSliverTree.isNodeRetained's delta clause is FLIP-only
because layout ADMITS preview-shifted rows, so the ordinary
cache-region check already retains them.
Implementation
bool get hasActiveFlipSlides => _slide.hasActive;