Sto utilizzando ArrayAdapter per impostare i dati in ListView con funzionalità di scorrimento infinito. C'è un ImageView e due TextViews in una riga di ListView. Inizialmente, sto caricando ListView con 10 elementi e, durante lo scorrimento verso il basso, chiamo il servizio web in setonscrolllistener per caricare i 10 elementi successivi a ListView. Quando vengono aggiunti nuovi elementi all'Arraylist, è sufficiente chiamare lo adapter.notifysetdatachanged
per indicare all'adattatore di aggiornare ListView.ListView sfarfallio quando vengono aggiunti nuovi elementi
Ora il problema è che, ogni volta che i nuovi elementi vengono aggiunti a ListView, l'intero ListView si aggiorna e fa sì che le immagini nel ListView, che sono già caricate, sfarfallino. Sì, sto memorizzando nella cache tutte le immagini sia nel disco che nella memoria, e il codice fa il caching molto agevolmente.
Ho anche provato ad aggiungere dati nell'adattatore utilizzando questo adapter.addall(myarraylist)
ma non è stato di aiuto. Le immagini sono ancora tremolanti. Ho cercato molto su StackOverflow e ho scoperto che non è possibile aggiungere e mostrare più elementi in ListView senza aggiornare l'intero listView. Lo so già, ma ci deve essere un modo per aggiungere nuovi dati a ListView e non per aggiornare i dati già caricati.
Sto configurando l'adattatore in questo modo.
public View getView(int position, View view, ViewGroup parent)
{
int main = R.layout.layout;
ViewHolder holder = null;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(main, null);
holder.image = (ImageView) convertView.findViewById(R.id.imageview);
///More stuff
view.setTag(holder);
} else {
holder = (ViewHolder)view.getTag();
}
// Loading ImageViews by Urls
return view;
}
Qualcuno potrebbe per favore far luce su di esso?
Non esattamente sicuro, ma questo potrebbe essere correlato. http://stackoverflow.com/questions/13322575/android-visible-listview-images-flicker-when-adding-data-to-arrayadapter – Zerkz
prova questo https://github.com/commonsguy/cwac-endless –
Puoi mostra come stai caricando le immagini nella vista? Cheers – asheinfeld