android - vista de lista obtiene vista de elemento por posición

Resuelto alashow asked hace 54 años • 6 respuestas

Tengo vista de lista con adaptador personalizado (adaptador base). Quiero obtener una vista de lista por posición. Lo intenté mListView.getChildAt(position), pero no funciona. ¿Cómo puedo obtener la vista de elementos por posición?

alashow avatar Jan 01 '70 08:01 alashow
Aceptado

Utilizar esta :

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);
    }
}
VVB avatar Jul 21 '2014 11:07 VVB

Solo puede obtener una Vista visible desde ListView porque las vistas de filas en ListView son reutilizables. Si lo usa, mListView.getChildAt(0)obtendrá la primera vista visible. Esta vista está asociada con el elemento del adaptador en la posición mListView.getFirstVisiblePosition().

Matt Twig avatar Jul 17 '2014 19:07 Matt Twig