Как отключить pulltorefresh при выполнении смахивания для закрытия на Android

У меня возникла небольшая проблема с использованием библиотеки pullorefresh совместно с проведите по экрану, чтобы закрыть ListView. Проблема в том, что после того, как пользователь начинает смахивать один элемент из представления, pulltorefresh по-прежнему принимает события касания и в основном позволяет обновить представление при смахивании элемента из него, если пользователь проводит не только по горизонтали, но и больше по диагональ.

Есть ли способ полностью поглотить сенсорные события в жесте смахивания? Я понимаю, как Android отправляет сенсорные события. На самом деле EnhancedListView возвращает true из onTouchEvent при прокрутке элемента, что, я думаю, должно предотвратить передачу события в контейнер (с помощью pulltorefresh).

Есть ли у вас какие-либо советы, как это исправить? Спасибо


person simekadam    schedule 19.06.2014    source источник
comment
Кажется похожим (но, к сожалению, без ответа). Что-нибудь придумать? stackoverflow.com/questions/18800874/   -  person Jay Bobzin    schedule 16.07.2014


Ответы (3)


Я тоже столкнулся с той же проблемой. Ответ - отключить его! ;)

mPullToRefreshLayout.setEnabled(false);

и чтобы включить его,

mPullToRefreshLayout.setEnabled(true);
person Rishabh Bhardwaj    schedule 22.12.2014

Если вы используете EnhancedListView Тима Роуза

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

Когда начинается смахивание, я отключаю SwipeRefreshLayout, а когда смахивание заканчивается, я включаю swipeRefreshLayout.

person JND    schedule 29.08.2014

Самый простой способ

удалить прослушиватель mRefreshLayout.setOnRefreshListener(null); в onRefresh(); и после получения результатов верните его в mRefreshLayout.setOnRefreshListener(this);

person Wasim Amin    schedule 16.05.2017