[go: nahoru, domu]

blob: ed26ce69965056ff689b25b44c5b772fd6f448e1 [file] [log] [blame]
/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package androidx.animation
/**
* TargetAnimation class defines how to animate to a given target value.
*
* @param target Target value for the animation to animate to
* @param animation The animation that will be used to animate to the target destination. This
* animation defaults to a Spring Animation unless specified.
*/
data class TargetAnimation(
val target: Float,
val animation: AnimationBuilder<Float> = PhysicsBuilder()
)
/**
* Possible reasons with which DynamicTargetAnimation can finish
*/
enum class AnimationEndReason {
/**
* Animation has successfully reached the [BaseAnimatedValue.targetValue] value
* and come to stop
*/
TargetReached,
/**
* Animation was interrupted, e.g by another animation
*/
Interrupted,
/**
* Animation will be forced to end when its value reaches upper/lower bound (if they have
* been defined, e.g via [AnimatedFloat.setBounds])
*
* Unlike [TargetReached], when an animation ends due to [BoundReached], it often falls short
* from its initial target, and the remaining velocity is often non-zero. Both the end value
* and the remaining velocity can be obtained via `onEnd` param in [AnimatedFloat.fling]
* callback
*/
BoundReached
}