7

What is this blue shadow called which apears when the view is pulled after it ends? is there a listener triggered when this appears or goes?

enter image description here

I have implemented https://github.com/maurycyw/StaggeredGridView and I want to load more items when this viewgroup is overscrolled.

4

2 回答 2

6

它被称为Overscroller。Listview具有对过度滚动的内置支持。查看setOverscrollMode和相关的方法setOverscrollHeadersetOverscrollFooter. 如果您想要不同的行为, ListView 通过覆盖来使用过度滚动页眉/页脚AbsListView.onOverscrolled;,您可以通过自己覆盖来实现它。

于 2015-02-11T08:46:00.753 回答
3

不幸的是,没有现成的库或功能可以实现这一目标。但是有很好的开放图书馆可以适应。

我的建议是检查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 ...
      }
}
于 2015-02-11T11:28:37.927 回答