Как называется эта синяя тень?

Как называется эта синяя тень, которая появляется, когда вид исчезает после того, как он заканчивается? слушатель срабатывает, когда это появляется или уходит?

Я реализовал https://github.com/maurycyw/StaggeredGridView и хочу загрузить больше элементов, когда эта группа просмотра прокручивается.

2 ответа

Решение

Это называется Overscroller.Listview имеет встроенную поддержку для прокрутки. Проверять, выписываться setOverscrollMode и связанные методы setOverscrollHeader а также setOverscrollFooter, ListView использует верхний / нижний колонтитул прокрутки путем переопределения AbsListView.onOverscrolled; если вам нужно другое поведение, вы можете реализовать его, переопределив его самостоятельно.

К сожалению, нет готовой библиотеки или функциональности для этого. Но есть хорошая открытая библиотека, которую вы можете адаптировать.

Мое предложение проверить SwipeRefreshLayoutнаходится в библиотеке поддержки Android.

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

документы: https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

исходный код: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v4/java/android/support/v4/widget/SwipeRefreshLayout.java

редактировать: альтернативно, чтобы реализовать load more Функция со слушателем прокрутки относительно проста, это просто OnScrollListener со следующим кодом:

private long lastRequestTime = 0;
public void onScroll (AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount){
      if (((firstVisibleItem+visibleItemCount) > totalItemCount - 4) &&
         (lastRequestTime + 1000 < System.currentTimeMillis())) {
         lastRequestTime = System.currentTimeMillis();
         // load more ...
      }
}
Другие вопросы по тегам