я хочу выделить недавно добавленные элементы ListView с приятным эффектом. Я думал, что это просто и легко, но я наткнулся на проблему:
Я хочу воспроизвести анимацию TransitionDrawable и, когда она завершится, перемотать ее. Новый элемент будет выделен на мгновение, а затем смешается с остальными.
TransitionDrawable имеет методы для воспроизведения анимации вперед и назад, но ни один из них не может быть использован для синхронизации. Я ожидал, что появится возможность указать обратный вызов для завершения анимации, что-то вроде:
TransitionDrawable transition = (TransitionDrawable) view.getBackground();
transition.startTransition(500, new TransitionCompleteListener(){
public void completed()
{
transition.reverseTransition(500);
}
});
Но ничего подобного не поддерживает класс TransitionDrawable.
Проблема: как воспроизвести анимацию TransitionDrawable, а когда она закончится - сразу воспроизвести ее в обратном направлении? У меня была идея использовать класс Timer
для задержки выполнения обратной части анимации, но это решение выглядит слишком тяжелым для такой простой вещи.
Или, может быть, мне стоит использовать что-то отличное от TransitionDrawable? Я бы хотел избежать использования Property Animations, так как я хочу поддерживать старые устройства (и PA доступны с Honeycomb).