MotionDurationScale
interface MotionDurationScale : CoroutineContext.Element
Provides a duration scale for motion such as animations. When the duration scaleFactor
is 0,
the motion will end in the next frame callback. Otherwise, the duration scaleFactor
will be
used as a multiplier to scale the duration of the motion. The larger the scale, the longer the
motion will take to finish, and therefore the slower it will be perceived.
Testing
To control the motion duration scale in tests, create an implementation of this interface and
pass it to the effectContext
parameter either where you call runComposeUiTest
or where you
create your test rule.
Properties
val scaleFactor: Float
Defines the multiplier for the duration of the motion. This value should be non-negative.
A scaleFactor
of 1.0f would play the motion in real time. 0f would cause motion to finish
in the next frame callback. Larger scaleFactor
will result in longer durations for the
motion/animation (i.e. slower animation). For example, a scaleFactor
of 10f would cause an
animation with a duration of 100ms to finish in 1000ms.
override val key: CoroutineContext.Key<*>