android - vista de lista obtiene vista de elemento por posición
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?
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);
}
}
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()
.