AnimateDecay

  • 衰减型动画。
  • 如具备初速度,随后慢慢衰减到结束的消散型动画。

场景

  • 惯性衰减类型的动画,就都建议使用animateDecay
  • 如:
    • 列表滑动的Fling操作,就是一种常见的惯性衰减。
属性 解释
initialVelocity 动画的初始速度
animationSpec DecayAnimationSpec,消散型动画的实现
  • 特性:
    • 只有初始速度,没有具体的目标值,衰减模型不需要我们指定一个目标值。

DecayAnimationSpec

exponentialDecay

  • 指数衰减

val decayAnimate = remember {
    Animatable(1.0f)
}

var decayControl by remember {
    mutableStateOf(false)
}

val decay = exponentialDecay<Float>()
LaunchedEffect(decayControl) {
//             remember {   exponentialDecay<>() }
//              remember {   splineBasedDecay<>() }//spline 样条函数曲线(Android惯性滑动的函数曲线)
    decayAnimate.snapTo(1.0f)
    decayAnimate.animateDecay(2.0f, decay)
}

Box(modifier = Modifier
.width(700.dp)
.height(360.dp)
.scale(decayAnimate.value)
.clickable(
) {
    decayControl = !decayControl
}
){
Text("test for code")
}

rememberSplineBasedDecay/splineBasedDecay

  • spline :样条函数曲线(Android惯性滑动的函数曲线)
  • 可以实现像Android原生里,OverScroller相关的Fling等滑动的效果.

缺点:

  • 不能针对Dp使用,仅支持像素衰减。

 评论