Невозможно выполнить прокрутку в ListView в swipeRefreshLayout

У меня проблема с SwipeRefreshLayout. У меня есть представление списка в макете, и каждый раз, когда я просматриваю вверх в списке, салфетки, чтобы обновить макет, активизируются, и вы никогда не сможете вернуться назад к вершине макета. У кого-нибудь есть идеи?

Solutions Collecting From Web of "Невозможно выполнить прокрутку в ListView в swipeRefreshLayout"

Я нашел ответ на свой вопрос. Я вручную включаю swipeRefreshLayout, когда первый ребенок в списке находится в верхней части списка.

listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView listView, int firstVisibleItem, int visibleItemCount, int totalItemCount) { int topRowVerticalPosition = (listView == null || listView.getChildCount() == 0) ? 0 : expandableListview.getChildAt(0).getTop(); refresh.setEnabled((topRowVerticalPosition >= 0)); } }); 

https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

Согласно Android docs по вышеуказанной ссылке,

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

Если ListView является SwipeRefreshLayout прямым дочерним элементом SwipeRefreshLayout , обновление не запускается до SwipeRefreshLayout к SwipeRefreshLayout ListView . Вам не нужно ничего делать в onScroll() .