Tengo un ListView
que muestra en cada fila una imagen extraída de internet y una cadena.Android - ListView - llamando al getView() bajo demanda
En general, funciona bien. Sin embargo, quiero tomar el control en el camino cuando las vistas (filas) están infladas. De forma predeterminada, cuando la fila es visible, se llama al método getView()
del adaptador.
Esto por supuesto no es uno de los mejores comportamientos, porque si tengo un ListView
con varios cientos de registros, y necesito llegar a los que está en la parte inferior, mientras se desplaza el ListView
, se invocará el método getView()
para cada remar hasta llegar al pie de página.
Así que desee llamar a getView sólo después de que el desplazamiento y el ListView está en estado de pausa/inactivo, pero no tengo idea de cómo ir sobre esto:
Así es como empecé:
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState==SCROLL_STATE_IDLE){
// Invoke get view only on visible items
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});
este es el getView de mi adaptador:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row, parent, false);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.textView);
holder.image = (ImageView) convertView.findViewById(R.id.imageView);
holder.position = position;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(data.get(position).getTitle());
holder.image.setImageResource(R.drawable.ic_launcher);
new LoadImageAsync(data.get(position).getUrl(), holder.image).execute();
return convertView;
}
por favor, dame algunas instrucciones sobre dónde debería mirar con el fin de lograr esto: Call getView() sólo después de desplazarse, y sólo para visib le artículos.
check ApiDemos, sección Adaptador Eficiente –
@TomislavNovoselec, gracias por la pista. Eso vale la pena investigar. –