1

Я использовал класс android.animation.AnimatorListenerAdapter в своем коде для прослушивания анимации. Пример:nineoldAndroid AnimationListenerAdapter

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

Я использовал обратную LIB совместимости по nineoldandroids, анимация работает отлично, но я получаю следующее сообщение об ошибке, что не позволяет мне запустить свой код, у меня слушатель:

метод setListener (Animator.AnimatorListener) в типе ViewPropertyAnimator не применяется для аргументов (новый AnimatorListenerAdapter() {})

код работает нормально, когда я использовал уровень API 11. Мои старые операторы импорта:

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

Мой новый импорт заявление:

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

ответ

2

Я просто столкнулся с той же проблемой и нашел Jake Wharton's implementation из SwipeDismissListener:

On Line 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) 
} 

И не должно быть никаких ошибок.

+0

любая идея, почему onAnimationStart (анимация аниматора) не вызывается, даже если анимация выполнена? – Lucas

+0

@ Лукас, что ответ был давным-давно, мог бы быть более конкретным в этой проблеме? thx – dumbfingers

+0

он работал, когда я использовал public void onAnimationStart (com.nineoldandroids.animation.Animator animation). Возможно, возникла путаница в использовании библиотеки – Lucas