private void animateView(final int diff, final float animationSpeed,
                             @NonNull final AnimationListener animationListener,
                             @NonNull final Interpolator interpolator) {
        if (!isDragging() && !isAnimationRunning()) {
            long duration = calculateAnimationDuration(diff, animationSpeed);
            Animation animation =
                    new DraggableViewAnimation(this, diff, duration, animationListener);
            animation.setInterpolator(interpolator);
            startAnimation(animation);
        }
    }
private void animateView ( final int diff , final float animationSpeed , @ NonNull final AnimationListener animationListener , @ NonNull final Interpolator interpolator ) { if ( ! isDragging ( ) && ! isAnimationRunning ( ) ) { long duration = calculateAnimationDuration ( diff , animationSpeed ) ; Animation animation = new DraggableViewAnimation ( this , diff , duration , animationListener ) ; animation . setInterpolator ( interpolator ) ; startAnimation ( animation ) ; } }
Animates the view to become shown or hidden.

@param diff
The distance the view has to be vertically moved by, as an {@link Integer} value
@param animationSpeed
The speed of the animation in pixels per millisecond as a {@link Float} value
@param animationListener
The listener, which should be notified about the animation's progress, as an instance
of the type {@link AnimationListener}. The listener may not be null
@param interpolator
The interpolator, which should be used by the animation, as an instance of the type
{@link Interpolator}. The interpolator may not be null