2013-11-26 4 views
6

Я использую chrisbanes's Android-PullToRefresh в своем приложении.Как отключить функцию pulltorefresh в первый раз?

Мне нужно отключить функцию pulltorefresh для запуска первого фрагмента - когда список пуст, а элементы загружаются в фоновом режиме. В этом случае (список пуст) пользователь может прокрутить вниз, и будет отображен индикатор прогресса с «Release to refresh».

После загрузки всех элементов, которые я хочу, чтобы включить функцию pulltorefresh ..

Как?

ответ

16

У меня была такая же проблема.

Согласно источнику, если просмотр отключен, он не будет использовать событие касания.

https://github.com/chrisbanes/ActionBar-PullToRefresh/blob/master/library/src/uk/co/senab/actionbarpulltorefresh/library/PullToRefreshLayout.java#L137

просто, вы можете сделать

mPullToRefreshLayout.setEnabled(false); 
+0

, пожалуйста, добавьте дополнительное описание, поскольку ссылка дает ошибку (404). –

1

По умолчанию вы отключите pull, чтобы обновить и включить в asyncTask post execute, когда заполнить адаптер списка.

+0

Спасибо. Но вопрос в том, как отключить функцию pulltorefresh. – vsvydenko

+0

проверить измененный ответ. –

+0

Для первого запуска фрагмента listview пуст. Когда первый раз запускается фрагмент, он начинает загружать данные в async-задачу. В этот момент (список пуст) пользователь может прокручивать вниз и показывать прогрессную панель и текст «Release to refresh» (стандартный заголовок для pulltorefreshlistview). В этом случае мне не нужен этот заголовок. Мне нужно показать этот заголовок после загрузки элементов. пользователь не должен пытаться обновить до загрузки первой страницы – vsvydenko

-1

надеюсь, что это поможет кто-то с той же проблемой:

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

Вы можете поставить счетчик и вызывать метод для обновления только тогда, когда этот счетчик больше 0 (ноль) и устанавливает прослушиватель в событии прокрутки, чтобы установить значение 0 (ноль), поэтому каждый раз, когда пользователь прокручивает список, счетчик будет установлен на 0 (ноль) и когда список прибывает сверху и снова прокручивается, и вы вызываете метод refresh.

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; 
       } 
      }); 
Смежные вопросы