ThenEffect class
A special convenience "effect" that makes it easier to sequence effects after
one another. It does this by calculating a new inheritable delay by adding the
previous effect's delay
, duration
and its own optional delay
.
For example, this would cause the scale to run 300 milliseconds after the fade completes:
Text("Hello").animate()
.fadeIn(delay: 300.ms, duration: 500.ms)
.then() // sets own delay to 800ms (300+500)
.slide(duration: 400.ms) // inherits the 800ms delay
.then(delay: 200.ms) // sets delay to 1400ms (800+400+200)
.blur() // inherits the 1400ms delay
// Explicitly setting delay overrides the inherited value.
// This move effect will run BEFORE the initial fade:
.move(delay: 0.ms)
This makes it easy to change the delay or duration of the fadeIn
, without
having to update the delay on scale
to match.
Note that this simply calculates a new delay
that will be inherited by the
subsequent effect. In the example above, it is functionally equivalent to
setting delay: 1400.ms
on the blur effect.
Constructors
- ThenEffect({Duration? delay, Duration? duration, Curve? curve})
-
const
Properties
- begin → double?
-
The begin value for the effect. If null, effects should use a reasonable
default value when appropriate.
finalinherited
- curve → Curve?
-
The specified curve for the effect. If null, will use the curve from the
previous effect, or Animate.defaultCurve if this is the first effect.
finalinherited
- delay → Duration?
-
The specified delay for the effect. If null, will use the delay from the
previous effect, or Duration.zero if this is the first effect.
finalinherited
- duration → Duration?
-
The specified duration for the effect. If null, will use the duration from the
previous effect, or Animate.defaultDuration if this is the first effect.
finalinherited
- end → double?
-
The end value for the effect. If null, effects should use a reasonable
default value when appropriate.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
build(
BuildContext context, Widget child, AnimationController controller, EffectEntry entry) → Widget -
Builds the widgets necessary to implement the effect, based on the
provided AnimationController and EffectEntry.
override
-
buildAnimation(
AnimationController controller, EffectEntry entry) → Animation< double> -
Returns an animation based on the controller, entry, and begin/end values.
inherited
-
getBeginRatio(
AnimationController controller, EffectEntry entry) → double -
Returns a ratio corresponding to the beginning of the specified entry.
inherited
-
getEndRatio(
AnimationController controller, EffectEntry entry) → double -
Returns a ratio corresponding to the end of the specified entry.
inherited
-
getOptimizedBuilder<
U> ({required ValueListenable< U> animation, Widget? child, required TransitionBuilder builder}) → AnimatedBuilder -
Returns an optimized AnimatedBuilder that doesn't
rebuild if the value hasn't changed.
inherited
-
getToggleBuilder(
{required ValueListenable< double> animation, required Widget child, required bool toggle(), required ToggleEffectBuilder builder}) → AnimatedBuilder -
Returns an AnimatedBuilder that rebuilds when the
boolean value returned by the
toggle
function changes.inherited -
isAnimationActive(
Animation animation) → bool -
Check if the animation is currently running / active.
inherited
-
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