UPDATE:
測試後,
調用notifyDataSetChanged()
爲StaggeredGridView Adapter
情況下滾動位置重置爲0(視圖的開始)。
而是使用PinterestLikeAdapterView
我有添加loadMoreListener
到StaggeredGridView
步驟:
1-添加loadmore接口和booelan isLoading(在類的頂部)
public interface OnLoadMoreListener {
public boolean onLoadMore();
}
private boolean mIsLoading;
private OnLoadMoreListener mLoadMoreListener;
2 - 找到trackMotionScroll
功能,在deltaY > 0
和之後添加
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中定義loadMoreListener
您Activity/Fragment
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);
}
你好@Hugo ...你的代碼中的最後一個加載是什麼... Plz告訴我..我也陷入了同樣的問題 –