android - listview obter visão de item por posição

? alashow @ | Original: StackOverFlow
---

Eu tenho listview com adaptador personalizado ( adaptador de base) . Eu quero começar vista do listview por posição. Eu tentei mListView.getChildAt(position), mas ele não está funcionando . Como posso obter visão de item por posição?

---

Top 5 Responder

1Matt Twig @

Você pode obter Ver apenas visível do ListView porque vistas de linha em ListView são reutilizáveis. Se você usar mListView.getChildAt(0) você obtém primeira vista visível. Este ponto de vista está associado com o item de adaptador na posição mListView.getFirstVisiblePosition() .

2The Metal Beard @

Não há nenhuma maneira de fazer isso. A única maneira de mudar a aparência / whatever de pontos de vista de linha uma vez que o ListView é desenhado é mudar algo no ListView dados desenha a partir de ( a matriz de objetos que é passado para o seu adaptador ) e certifique-se de explicar que em sua getView ( função), então redesenhar o ListView chamando

notifyDataSetChanged();
3VVB @

Use this :

public View getViewByPosition(int pos, ListView listView) {
    final int firstListItemPosition = listView.getFirstVisiblePosition();
    final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

    if (pos < firstListItemPosition || pos > lastListItemPosition ) {
        return listView.getAdapter().getView(pos, null, listView);
    } else {
        final int childIndex = pos - firstListItemPosition;
        return listView.getChildAt(childIndex);
    }
}