SlideComposer<TKey, TData> class
One composer per attached controller, owned by the render object.
Holds no slide state of its own: both collaborators are exposed directly, and the forwarders below exist only to shorten the most frequent call sites. Anything beyond those goes through baselineSlot or ghosts, whose own docs carry the contracts.
- Implemented types
-
- GhostBaseResolver<
TKey>
- GhostBaseResolver<
Constructors
-
SlideComposer({required TreeController<
TKey, TData> controller})
Properties
-
baselineSlot
→ SlideBaselineSlot<
TKey> -
Pending-baseline slot: staged before a mutation, consumed by the
layout that follows it.
final
- debugGhostEntryCount → int
-
Number of live ghost entries. Forwards to the registry's debug
accessor for symmetry with the render object's count exposures.
no setter
-
ghosts
→ GhostRegistry<
TKey, TData> -
Active edge-ghost registry.
final
- hasGhosts → bool
-
Whether any edge ghosts are currently active. Render-side fast
paths use this to skip ghost-related work when there are none.
no setteroverride
- hashCode → int
-
The hash code for this object.
no setterinherited
- isBaselineStaged → bool
-
Whether a baseline is staged and not yet consumed.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
baseFor(
TKey key, ViewportSnapshot viewport) → double? -
Returns the live scroll-space base Y for
keyif it is currently an edge ghost,nullotherwise. Caller composes the result with the row's slide delta separately (the resolver is unaware of per-frame slide progress).override -
consumeBaseline(
) → ({Curve curve, Duration duration, Map< TKey, ({double x, double y})> offsets, ViewportSnapshot viewport})? - Forwards to SlideBaselineSlot.consume, taking the staged baseline and emptying the slot. Null when nothing was staged.
-
entryFor(
TKey key) → ({Curve curve, Duration duration, ViewportEdge edge})? -
Returns the edge entry for
keyif it is currently a ghost. Used by paint/hit-test sites that need both the side AND timing info (the resolver-only baseFor discards the side after resolving).override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
rebindController(
TreeController< TKey, TData> controller) → void -
Re-binds the registry to a new controller on
RenderSliverTree's controller setter. Caller separately calls reset to drop any state staged against the old controller's keys. -
reset(
) → void - Discards any staged baseline and clears the ghost registry. Used on controller swap so state staged against the old controller doesn't leak into the new one.
-
stageBaseline(
{required Map< TKey, ({double x, double y})> offsets, required ViewportSnapshot viewport, required Duration duration, required Curve curve}) → bool - Forwards to SlideBaselineSlot.stage. Returns false when a baseline is already staged for this frame, per that slot's first-wins rule.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited