SlideAnimation<TKey> class
Slide animation state for a single node in a FLIP-style reorder.
Unlike AnimationState, which interpolates extent (size) and is applied at layout, SlideAnimation interpolates offset delta and is applied at paint. The node's structural position is always its post-mutation offset; currentDelta shifts only the painted pixels so the node visually slides from its old position toward its new one.
startDelta = old scroll-space offset - new scroll-space offset (the distance the node appears to travel). currentDelta = lerp(startDelta, 0, curve(progress)); when progress reaches 1, currentDelta is snapped to exactly 0.0 (see TreeController's slide tick handler).
Constructors
- SlideAnimation({required double startDelta, required Curve curve, double startDeltaX = 0.0, double progress = 0.0})
Properties
- currentDelta ↔ double
-
The interpolated current delta, applied at paint time as a vertical
translation. Snapped to exactly 0.0 at completion.
getter/setter pair
- currentDeltaX ↔ double
-
Interpolated current X delta, applied at paint time as a horizontal
translation. Snapped to exactly 0.0 at completion alongside
currentDelta.
getter/setter pair
- curve ↔ Curve
-
The curve applied to the progress when computing currentDelta.
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- isComplete → bool
-
Whether this animation has completed.
no setter
- preserveProgressOnRebatch ↔ bool
-
When true, the engine's un-touched re-baseline branch in
animateFromOffsetsskips this slide. Set by the render layer for active edge-ghost and exit-phantom slides via TreeController.markSlidePreserveProgress so concurrent batches (e.g. autoscroll commits) don't restart the ghost's progress clock. Cleared implicitly when the slide entry is replaced (composition creates a fresh entry with default false) or destroyed.getter/setter pair - progress ↔ double
-
Animation progress from 0.0 to 1.0. Driven by a shared slide
AnimationController in TreeController.
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- slideDuration ↔ Duration
-
Duration of this specific slide. Set on install/composition. Per-slide
rather than shared so multi-batch installs with different durations
animate at their own rates.
getter/setter pair
- slideStartElapsed ↔ Duration
-
Wall-clock-equivalent (
Ticker.elapsed) value at this slide's progress=0 establishment (initial install, composition reset, or re-baseline). Per-slide progress in_onSlideTickis computed as(ticker.elapsed - slideStartElapsed) / slideDurationso each slide progresses at its own rate independent of when other slides start.getter/setter pair - startDelta ↔ double
-
Initial scroll-space delta: old painted offset minus new structural
offset. Positive means the node appears above its final position at
t=0; negative means below.
getter/setter pair
- startDeltaX ↔ double
-
X-axis (cross-axis indent) start delta. Computed as
oldIndent - newIndent. Zero when the slide has no horizontal component (the reorder-only case — same parent, same depth).getter/setter pair
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited