PulsePainter class
Pulsing ring around the primary target (Material feature-discovery
pattern). Opt-in via HintTheme.showPulse; the animation runs only while
a step is active with the flag on.
The painter lives in the global overlay layer (full-screen canvas),
painted ABOVE the scrim — including the blur scrim, which is a global
BackdropFilter layer of its own (a pulse inside the target's follower
would end up under the blur). The ring is anchored at the resolver's
global translation, so it follows the target while the picture repaints
(the animation tick repaints every frame, reading the compositor
transform live — no rebuilds, no extra lag).
- Inheritance
-
- Object
- Listenable
- CustomPainter
- PulsePainter
Constructors
-
PulsePainter({required Animation<
double> ? animation, required HintPositionResolver? resolver, required Color color})
Properties
-
animation
→ Animation<
double> ? -
The repeating phase in 0..1; null — a static ring at phase 0 (not used
in practice: the engine starts the controller only when pulsing).
final
- color → Color
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- resolver → HintPositionResolver?
-
The primary target's resolver (hole size at paint time).
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- semanticsBuilder → SemanticsBuilderCallback?
-
Returns a function that builds semantic information for the picture drawn
by this painter.
no setterinherited
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be notified when it is time to repaint.
inherited
-
hitTest(
Offset position) → bool? -
Called whenever a hit test is being performed on an object that is using
this custom paint delegate.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
paint(
Canvas canvas, Size size) → void -
Called whenever the object needs to paint. The given Canvas has its
coordinate space configured such that the origin is at the top left of the
box. The area of the box is the size of the
sizeargument.override -
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that the
object notifies when it is time to repaint.
inherited
-
shouldRebuildSemantics(
covariant CustomPainter oldDelegate) → bool -
Called whenever a new instance of the custom painter delegate class is
provided to the RenderCustomPaint object, or any time that a new
CustomPaint object is created with a new instance of the custom painter
delegate class (which amounts to the same thing, because the latter is
implemented in terms of the former).
inherited
-
shouldRepaint(
covariant PulsePainter oldDelegate) → bool -
Called whenever a new instance of the custom painter delegate class is
provided to the RenderCustomPaint object, or any time that a new
CustomPaint object is created with a new instance of the custom painter
delegate class (which amounts to the same thing, because the latter is
implemented in terms of the former).
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
pulseRing(
double phase, Size size, {double expansion = 24}) → (Rect, double) -
The expanding ring for a pulse
phasein 0..1 around a hole ofsize:(rect, opacity). The rect inflates from the hole by up toexpansion(in each direction); the opacity holds for the first half of the phase and fades linearly to zero by the end. Pure — unit-tested directly.