Как анимировать отдельные элементы в ListView
Я делаю небольшое приложение для Android, основанное на ListView. Когда пользователь выбирает один или несколько элементов в списке, а затем выбирает пункт меню из панели действий, я хотел бы сделать небольшую анимацию для выбранных элементов в списке, и именно здесь все идет не так.
Ничто не оживляет - и ничто не терпит неудачу. Следующий фрагмент кода является упрощенной версией того, что я делаю:
private void animateListViewItem()
{
TranslateAnimation anim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f);
anim.setDuration(2000);
View v = fragment.getListAdapter().getView(fragment.getListView().getFirstVisiblePosition(), null, null);
v.startAnimation(anim);
}
Когда я возился с этим, пытаясь выяснить, в чем дело, я в какой-то момент заменил элемент всем ListView, чтобы исключить анимацию как источник проблемы - вот так.
private void animateListViewItem()
{
TranslateAnimation anim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f);
anim.setDuration(2000);
fragment.getListView().startAnimation(anim);
}
К моему изумлению, это сработало идеально!
Поэтому мой вопрос - почему я не могу анимировать отдельные элементы в ListView? Или я что-то не так делаю?
Спасибо!
Постскриптум Для записи ListView заполнен пользовательскими представлениями (LinearLayouts), и я проверил, что я получаю нужный элемент перед анимацией.