Como animar elementos individuais no ListView
Eu estou fazendo um pequeno aplicativo Android baseado em torno de um ListView. Quando o usuário seleciona um ou mais elementos na lista e subseqüentemente seleciona um item de menu do ActionBar, eu gostaria de fazer uma pequena animação nos elementos selecionados na lista, e é aí que as coisas dão errado.
Nada anima - nem nada falha. O seguinte código é uma versão simplificada do que estou fazendo:
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);
}
Quando eu mexi com isso, tentando descobrir o que estava errado, em um ponto eu substituí o item com o ListView inteiro para descartar a animação como a fonte do problema - assim.
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);
}
Para minha surpresa, funcionou perfeito!
Então, minha pergunta é: por que não posso animar os elementos individuais em um ListView? Ou há algo que estou fazendo errado?
Obrigado!
P.S. Para o registro, o ListView é preenchido com modos de exibição personalizados (LinearLayouts), e verifiquei se recebo o item correto antes de animar.