2013-11-26 13 views
6

Używam w mojej aplikacji chrisbanes's Android-PullToRefresh.Jak wyłączyć funkcję pulltorefresh po raz pierwszy?

Muszę wyłączyć funkcję pulltorefresh przy pierwszym uruchomieniu fragmentu - kiedy lista jest pusta, a elementy są pobierane w tle. W tym przypadku (lista jest pusta) użytkownik może przesunąć palcem w dół i pojawi się pasek postępu z komunikatem "Zwolnij, aby odświeżyć".

Po załadowaniu wszystkich elementów Chcę włączyć funkcjonalność pulltorefresh ..

Jak?

Odpowiedz

1

Domyślnie wyłączysz opcję przeciągania, aby odświeżyć i włączyć w asyncTask wykonywania po wypełnieniu adaptera listy.

+0

Dzięki. Pytanie tylko, jak wyłączyć funkcję pulltorefresh. – vsvydenko

+0

sprawdź poprawioną odpowiedź. –

+0

Przy pierwszym uruchomieniu fragmentu lista jest pusta. Kiedy fragment uruchamia się po raz pierwszy, uruchamia ładowanie danych w asynchronicznym zadaniu. W tym momencie (lista jest pusta) użytkownik może przesuń palcem w dół i wyświetlić pasek postępu oraz tekst "Zwolnij, aby odświeżyć" (standardowy nagłówek dla pulltorefreshlistview). Nie potrzebuję tego nagłówka w tym przypadku. Muszę pokazać ten nagłówek po załadowaniu elementów .. użytkownik nie powinien być w stanie ciągnąć, aby odświeżyć, dopóki pierwsza strona nie zostanie załadowana – vsvydenko

-1

nadzieję, że to pomaga ktoś z tej samej kwestii:

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

można umieścić licznik i wywołać metodę tylko podczas odświeżania liczba ta jest większa niż 0 (zero) i ustawiono detektor zdarzenia przewijania, aby ustawić zliczenie na 0 (zero), więc za każdym razem, gdy użytkownik przewinie listę, licznik zostanie ustawiony na 0 (zero) i na czas lista pojawi się na górze i przewiń w górę, od nowa odświeżysz metodę.

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; 
       } 
      }); 
Powiązane problemy