2013-11-26 17 views
6

Sto utilizzando chrisbanes's Android-PullToRefresh nella mia app.Come disattivare la funzionalità pulltorefresh per la prima volta?

ho bisogno di disattivare la funzionalità per il lancio pulltorefresh frammento prima volta - in cui elenco è vuoto e gli elementi sta scaricando in background. In questo caso (elenco è vuoto) utente può scorrere verso il basso e progressbar con "Release to refresh" verrà mostrato.

Dopo aver caricato tutti gli elementi che voglio per attivare la funzionalità pulltorefresh ..

Come?

risposta

1

Per impostazione predefinita si disattiva tirare per rinfrescare e consentire in AsyncTask post eseguire quando per riempire l'adattatore di lista.

+0

Grazie. Ma la domanda è come disabilitare la funzionalità pulltorefresh .. – vsvydenko

+0

controllare la mia risposta modificata. –

+0

Per la prima volta dall'inizio del frammento, listview è vuoto. Quando il frammento viene avviato per la prima volta, inizia a caricare i dati in un'attività asincrona. In questo momento (l'elenco è vuoto) l'utente può scorrere verso il basso e mostrare la barra di avanzamento e il testo "Rilascia per aggiornare" (intestazione standart per pulltorefreshlistview). Non ho bisogno di questa intestazione in questo caso. Devo mostrare questa intestazione dopo aver caricato gli articoli .. l'utente non dovrebbe essere in grado di effettuare il pull per l'aggiornamento fino a quando la prima pagina non viene caricata – vsvydenko

-1

speranza questo aiuto qualcuno con lo stesso problema:

mRefreshableListView.setMode(PullToRefreshBase.Mode.DISABLED);//to disable the pull functionality 
mRefreshableListView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);//or whatever you want 
0

Si potrebbe mettere un conteggio e chiamare il metodo per aggiornare solo quando questo conteggio è maggiore di 0 (zero) e imposta un listener sull'evento di scorrimento per impostare il conteggio su 0 (zero), quindi ogni volta che l'utente scorre l'elenco, il conteggio verrà impostato su 0 (zero) e quando la lista arriva in alto e scorre di nuovo il metodo di aggiornamento che verrà chiamato.

mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
       @Override 
       public void onRefresh() { 
        if (countDelay > 0) { 
         countDelay = 0; 
         refresh(); 
        } else { 
         mSwipeRefreshLayout.setRefreshing(false); 
         countDelay++; 
        } 
       } 
      }); 
mSwipeRefreshLayout.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { 
       @Override 
       public void onScrollChanged() { 
        countDelay = 0; 
       } 
      }); 
Problemi correlati