Às vezes, listView.getChildAt (int index) retorna NULL (Android)

Eu tenho um listView com um adaptador personalizado. Quando algo acontece (um clique em uma criança) eu faço algumas coisas de cálculo e modifico a visão infantil. Se alguma condição tiver sido atendida, outra criança não relacionada ao filho clicado deverá ser modificada.

Isso às vezes funciona, mas às vezes falha e o DDMS diz que a visão é nula ...

Deixe-me mostrar o código:

<code>        if(invalidaEste != -1)
        {
            try
            {
                View v = lv_data.getChildAt(invalidaEste);
                if( v== null)
                {
                    Log.e("MY_LOG", "SIZE " + lv_data.getCount());
                    Log.e("MY_LOG", "IS_NULL " + String.valueOf(invalidaEste)); 
                }

                if(invalidaEste >= lv_data.getFirstVisiblePosition() &&
                   invalidaEste <= lv_data.getLastVisiblePosition())
                {
                    RelacionFacturaPago rpf = (RelacionFacturaPago)lv_data.getAdapter().getItem(invalidaEste);
                    TextView tv = (TextView)v.findViewById(R.id.tv_pendiente);
                    tv.setText(Formato.double2Screen(rpf.getPorPagar()));
                }
            }
            catch (Exception e)
            {
                Log.e("MY_LOG", "FAIL");
                Log.e("MY_LOG", String.valueOf(invalidaEste));
            }

        }
</code>

invalidaEste é a visão que quero modificar. Quandov é nulo Eu registro o índice para verificar se está tudo bem. Sempre é menor ou igual que o listView.getCount ()

Por que isso está acontecendo?

Mais dados: o código está dentro do onAnimationStart (animação de Animação) de um ouvinte do AnimationListener.

questionAnswers(4)

yourAnswerToTheQuestion