@Override public void onScrollStateChanged(AbsListView view, int scrollState) { super.onScrollStateChanged(view, scrollState); boolean canLoading = SCROLL_STATE_IDLE == scrollState // 停住了,不滑动了 && mListView.getLastVisiblePosition() == mAdapter.getCount() - 1 // 到底了 && (mSearchView == null || !mSearchView.isSearching()) // 用户没有打开搜索框 && !mSwipeRefreshLayout.isRefreshing(); // 当前没有处在刷新状态 // && mAdapter.getCount() > 0; // 不是一开始 if (canLoading) { // 可以加载更多,但是我们需要判断一下是否加载完了,没有更多了 if (mAdapter.getCount() >= mTotal) { Log.d(TAG, "load all done..."); super.loadAllDone(); } else { Log.d(TAG, "load..."); loadMore(mAdapter.getItemId(mAdapter.getCount() - 1)); } } else { Log.d(TAG, "cannot load more!"); } }
private void loadFromLocal() { Bundle args = new Bundle(); args.putInt(TAG, mAdapter.getCount() + getFetchSize()); getLoaderManager().restartLoader(0, args, this); mSwipeRefreshLayout.setRefreshing(true); }