2013-08-28 5 views
11

Ich habe versucht, Fortschrittsbalken in eine App zu integrieren, aber ich konnte die Rückrufmethode nicht verfolgen. Der Fortschrittsbalken wird immer angezeigt. Wie ausgeblendet werden, wenn das Bild geladen wird?konnte die Fortschrittsbalken nach dem Laden Bild in Picasso nicht ausblenden?

holder.imageView = (ImageView) localView.findViewById(R.id.imageView1); 
holder.progressBar = (ProgressBar) localView.findViewWithTag(R.id.progressBar1); 

localView.setTag(holder); 
url = getItem(paramInt); 
Picasso.with(getApplicationContext()) 
.load(url) 
.placeholder(R.drawable.ic_launcher) 
.error(R.drawable.ic_launcher) 
.fit() 
.into(holder.imageView, new Callback() { 

    @Override 
    public void onSuccess() { 
     holder.imageView.setVisibility(View.VISIBLE); 
     holder.progressBar.setVisibility(View.INVISIBLE);   
    } 

    @Override 
    public void onError() { 
     holder.progressBar.setVisibility(View.VISIBLE); 
     holder.imageView.setVisibility(View.INVISIBLE); 
    } 
}); 

Antwort

3

Schließlich i fixierte it.There ein Fehler in einer Picasso war 2.0.0 beta.used offizielle Bibliothek

+1

Achtung: Der Callback-param ist eine starke Referenz und verhindert, dass Ihre Dateien "android.app.Activity" oder "android.app.Fragment" als Garbage Collections erfasst werden. Wenn Sie diese Methode verwenden, wird dringend empfohlen, dass Sie einen benachbarten 'Picasso.cancelRequest (ImageView)' Aufruf aufrufen, um temporäres Lecken zu verhindern. –

+1

@Jabbar_Jigariyo Wie nennt man 'Picasso.cancelRequest (ImageView)' in einem Adapter? wird dies nicht manuell von der 'getView()' auf dem 'BaseAdapter' wiederverwendet? – chip

+0

Haben Sie Neuigkeiten zu diesem Thema? Hast du irgendein undichtes Problem ...? –

0

Versuchen VIEW.GONE statt VIEW.INVISIBLE

Verwandte Themen