Ho un ListView
che visualizza in ogni riga un'immagine estratta da Internet e una stringa.Android - ListView - chiama il getView() su richiesta
In generale funziona correttamente. Tuttavia voglio prendere il controllo sulla strada quando le viste (righe) sono gonfiate. Per impostazione predefinita, quando la riga è visibile, viene chiamato il metodo getView()
dell'adattatore.
Questo naturalmente non è uno dei migliori comportamenti, perché se ho un ListView
con diverse centinaia di dischi, e ho bisogno di raggiungere quelli in basso, mentre scorrendo la ListView
, il metodo getView()
verrà richiamato per ogni fila fino a raggiungere il piè di pagina.
quindi voglio chiamare GetView solo dopo lo scorrimento e il ListView è in pausa di stato/di inattività, ma non hanno idea di come andare su questo:
Ecco come ho iniziato:
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) {
}
});
questa è la GetView del mio adattatore:
@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;
}
per favore, datemi qualche indicazioni su dove dovrei guardare al fine di raggiungere questo obiettivo: Call GetView() solo dopo lo scorrimento, e solo per visib le voci.
check ApiDemos, sezione Efficient Adapter –
@TomislavNovoselec, grazie per il suggerimento. Vale la pena di inversione. –