Vsevolod Ganin
02/11/2021, 12:00 PMFlingConfig
with new animateDecay
? Can’t see where to apply FlingConfig::adjustTarget
matvei
02/11/2021, 12:43 PMVsevolod Ganin
02/11/2021, 12:47 PMsuspend fun Animatable<Float, AnimationVector1D>.fling(
initialVelocity: Float,
flingConfig: FlingConfig,
block: (Animatable<Float, AnimationVector1D>.() -> Unit)? = null,
): AnimationResult<Float, AnimationVector1D> {
val decay = flingConfig.decayAnimation.generateDecayAnimationSpec<Float>()
val targetValue = decay.calculateTargetValue(value, initialVelocity)
val adjustedTarget = flingConfig.adjustTarget(targetValue)
return if (adjustedTarget != null) {
animateTo(
targetValue = adjustedTarget.target,
animationSpec = adjustedTarget.animation,
initialVelocity = initialVelocity,
block = block
)
} else {
animateDecay(
initialVelocity = initialVelocity,
animationSpec = decay,
block = block,
)
}
}