Jak animować poszczególne elementy w ListView

Robię małą aplikację na Androida opartą na ListView. Gdy użytkownik wybierze jeden lub więcej elementów na liście, a następnie wybierze element menu z paska akcji, chciałbym zrobić małą animację na wybranych elementach na liście, i to jest miejsce, w którym wszystko idzie nie tak.

Nic nie animuje - nic nie zawodzi. Poniższy fragment kodu jest uproszczoną wersją tego, co robię:

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);
}

Kiedy się z tym pogmatwałem, próbując zrozumieć, co było nie tak, w pewnym momencie zastąpiłem element całym ListView, aby wykluczyć animację jako źródło problemu - tak.

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);
}

Ku mojemu zdumieniu zadziałało idealnie!

Więc moje pytanie brzmi - dlaczego nie mogę animować poszczególnych elementów w ListView? Czy jest coś, co robię źle?

Dzięki!

P.S. Dla rekordu ListView jest wypełniony niestandardowymi widokami (LinearLayouts) i sprawdziłem, czy otrzymałem odpowiedni element przed animacją.

questionAnswers(1)

yourAnswerToTheQuestion