我在代码中使用了android.animation.AnimatorListenerAdapter类来收听动画。
范例:

downView.animate().translationX(-mViewWidth).setDuration(mAnimationTime).
setListener(new AnimatorListenerAdapter() {
@Override
    public void onAnimationStart(
    Animator animation) {
    boolean real_dismiss = true;
    performDismiss(
//some code
)
    }


我使用了nineoldandroids的向后兼容库,动画效果很好,但是出现了以下错误,该错误使我无法在侦听器上运行代码:

ViewPropertyAnimator类型的方法setListener(Animator.AnimatorListener)不适用于参数(new AnimatorListenerAdapter(){})

当我使用API​​级别11时,代码运行良好。
我以前的进口声明:

//import android.animation.Animator;
//import android.animation.AnimatorListenerAdapter;
//import android.animation.ValueAnimator;


我的新进口声明:

import com.nineoldandroids.animation.*;
import com.nineoldandroids.*;

最佳答案

我刚遇到相同的问题,发现SwipeDismissListenerJake Wharton's implementation

在156行上,杰克正在使用com.nineoldandroids.view.ViewPropertyAnimator.animate(View arg0)
执行相同的功能。

因此,您所需要做的就是将代码更改为以下形式:

animate(downView)
.translationX(-mViewWidth)
.setDuration(mAnimationTime)
.setListener(new AnimatorListenerAdapter() {

@Override
    public void onAnimationStart(Animator animation) {
    boolean real_dismiss = true;
    performDismiss(//some code)
}


而且应该没有任何错误。

08-18 08:33