IconInboxRiffle class
A realistic two-sheet riffle for a stacked-tray glyph (e.g. inbox-04):
the BACK sheet and FRONT sheet deal out and return in a nested ping-pong —
the back leaves first and returns last, the front nested inside (back-out →
front-out → front-in → back-in) — while every moving sheet is occluded by
whatever sits in front of it. Each sheet is masked OUTSIDE the silhouettes of
the sheets/tray drawn after it, so the back sheet truly slides BEHIND the stack
(sinking behind the front sheet + the planted tray, then rising back up from
below into its slot) instead of floating over it.
Z-order is the glyph's own contour ranking, top→bottom by centroid y: the top-most contour is the BACK sheet, the next is the FRONT sheet, and the bottom holdTray contour(s) are the planted tray (drawn last, never move, mask both sheets). It rests as the settled glyph (restValue 0 → seamless cycle, reduced-motion shows the plain icon).
Cost is a couple of Path.combines + a clipPath per moving sheet per frame
(only while the tap animation runs) — the "mask outside" the realism needs,
kept cheap by masking against cached silhouettes, not a saveLayer.
Every timing/offset is a knob — each nav glyph is special and tuned on its own.
- Inheritance
-
- Object
- IconEffect
- IconInboxRiffle
Constructors
Properties
- autoReverse → bool
-
no setterinherited
- backInStart → double
-
final
- backOutEnd → double
-
final
- drop → double
-
How far (viewBox px) a sheet sinks DOWN as it deals out.
final
- duration → Duration
-
Play time for one cycle. The widget sizes its controller to this.
final
- frontInEnd → double
-
final
- frontOutEnd → double
-
final
- frontOutStart → double
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- holdTray → int
-
How many BOTTOM-most contours (by centroid y) are the planted tray — drawn
once, never moved, and used as a front occluder.
1forinbox-04.final - loops → bool
-
When true the controller AnimationController.repeats (pair with
autoReverse for a ping-pong such as a breathe).
no setterinherited
- restValue → double
-
The progress value to show at rest — when autoplay is off, before the
first play, and (crucially) under reduced-motion, which renders this single
settled frame instead of animating. e.g. 1.0 for a draw-on that should rest
fully drawn, 0.0 for a spin that rests front-facing.
no setteroverride
- rise → double
-
How far (viewBox px) BELOW its slot a returning sheet starts before rising
back up into place (the "from bottom to top" re-entry).
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
paint(
Canvas canvas, Size size, IconGeometry geom, double t, Paint paint) → void -
Paint one frame.
sizeis the icon's viewBox space;tis raw 0..1.override -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited