Как отключить функциональность pulltorefresh в первый раз?


Я использую Android-PullToRefresh chrisbanes в своем приложении.

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

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

Как?

4 6

4 ответа:

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

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

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

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

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;
                }
            });

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

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