1

我在代码中使用了 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.*;
4

1 回答 1

2

我刚遇到同样的问题,发现杰克沃顿的实现SwipeDismissListener

在第 156 行,Jake 正在使用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)
}

而且不应该有任何错误。

于 2013-09-05T08:37:51.887 回答