Как отключить функциональность pulltorefresh в первый раз?
Я использую Android-PullToRefresh chrisbanes в своем приложении.
Мне нужно отключить функцию pulltorefresh для первого запуска фрагмента-когда список пуст и элементы загружаются в фоновом режиме. В этом случае (список пуст) пользователь может провести вниз и progressbar с "Release to refresh" будет показан.
После загрузки всех элементов я хочу включить функцию pulltorefresh..
Как?
4 ответа:
У меня была такая же проблема.
Согласно источнику, если вид отключен,он не будет есть событие касания.
Просто, вы можете сделать
mPullToRefreshLayout.setEnabled(false);
По умолчанию вы отключаете pull To refresh и включаете в asyncTask post execute, когда заполнять адаптер списка.
Вы можете поставить счетчик и вызвать метод для обновления только тогда, когда этот счетчик больше 0(ноль) и установить прослушиватель на событие прокрутки, чтобы установить счетчик в 0(ноль), так что каждый раз, когда пользователь прокручивает список, счетчик будет установлен в 0(ноль), и когда список прибудет сверху и прокрутится снова, вы будете вызывать метод обновления.
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; } });