在视图结束后拉出视图时,这个蓝色阴影是什么?当出现或出现时是否有一个听众被触发?
我已经实现了https://github.com/maurycyw/StaggeredGridView,并且我希望在此视图组被过度滚动时加载更多项目。
答案 0 :(得分:6)
它被称为Overscroller。Listview
内置支持过度滚动。查看setOverscrollMode
及相关方法setOverscrollHeader
和setOverscrollFooter
。如果你想要不同的行为,ListView会通过覆盖AbsListView.onOverscrolled;
来使用overscroll页眉/页脚,你可以自己覆盖它来实现它。
答案 1 :(得分:3)
遗憾的是,没有现成的库或功能来实现这一目标。但是有一个很好的开放式图书馆,你可以适应。
我的建议是检查SwipeRefreshLayout
,它位于Android支持库上。
此ViewGroup支持从顶部滑动以进行回调,您可以调整它以实现底部滑动。
docs:https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html
修改强>
或者,使用滚动侦听器实现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 ...
}
}