更新:
经过测试,
为 StaggeredGridView Adapter 调用 notifyDataSetChanged() 以将滚动位置重置为 0(视图的开始)。
而是使用PinterestLikeAdapterView
我已将loadMoreListener 添加到StaggeredGridView
步骤:
1-添加一个loadmore接口和booelan isLoading(在类的顶部)
public interface OnLoadMoreListener {
public boolean onLoadMore();
}
private boolean mIsLoading;
private OnLoadMoreListener mLoadMoreListener;
2- 在deltaY > 0的else中找到trackMotionScroll函数
并在up = false; 之后添加
if (overhang <= 80) { // 80 is how nearest to the end. ZERO mean the end of list
// scrolling down and almost reach the end of list
if (false == mIsLoading && null != mLoadMoreListener) {
if (false == mLoadMoreListener.onLoadMore()) {
mIsLoading = true;
Log.d(TAG, "loadMore");
}
}
}
3-添加setListener()和loadComplated()函数
public void setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener) {
this.mLoadMoreListener = onLoadMoreListener;
}
public void loadMoreCompleated() {
mIsLoading = false;
}
如何使用:
1-在你的Activity/Fragment 中定义一个loadMoreListener
private StaggeredGridView.OnLoadMoreListener loadMoreListener = new StaggeredGridView.OnLoadMoreListener() {
@Override
public boolean onLoadMore() {
loading.setVisibility(View.VISIBLE);
// load more data from internet (not in the UI thread)
return true; // true if you have more data to load, false you dont have more data to load
}
};
2- 当您完成数据加载并将其添加到适配器调用时
private void doneLoading() {
gridView.loadMoreCompleated();
loading.setVisibility(View.GONE);
}