private boolean checkCanRefresh() { LayoutManager layoutManager = getLayoutManager(); Adapter adapter = getAdapter(); if (adapter != null && layoutManager != null) { int firstVisiblePosition = calculateFirstVisiblePosition(layoutManager); Log.d(TAG, "firstVisiblePosition" + firstVisiblePosition); if (!checkIsLoadMore() && firstVisiblePosition == (mRefreshHeader.getVisibleHeaderHeight() == 0 ? 1 : 0) && mRefreshHeader.getRefreshState() != REFRESH_STATE_REFRESHING) { return true; } } return false; }
@Override public boolean onTouchEvent(MotionEvent e) { if (mRefreshEnable || mLoadMoreEnable) { switch (e.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: mDownMotionEventY = (int) e.getRawY(); break; case MotionEvent.ACTION_MOVE: mCurMotionEventY = (int) e.getRawY(); if (mLoadMoreEnable && mCurMotionEventY - mDownMotionEventY < -20) { mIsUpFlag = true; } if (mLoadMoreEnable && checkCanLoadMore()) { Log.e(TAG, "checkLoadMore"); showLoadMoreView(); } if (mRefreshEnable && checkCanRefresh()) { Log.d(TAG, "canRefresh"); mRefreshHeader.move( (mCurMotionEventY - mDownMotionEventY) / 2, mCurMotionEventY, mDownMotionEventY); } break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: if (mRefreshHeader != null && mRefreshHeader.getRefreshState() != REFRESH_STATE_REFRESHING) { mRefreshHeader.upOrCancel(mRefreshDataListener); } mIsUpFlag = false; break; } } return super.onTouchEvent(e); }
public void completeRefresh() { if (mRefreshHeader != null) { mRefreshHeader.completeRefresh(); } }
public boolean checkIsPullToRefresh() { return mRefreshEnable && mRefreshHeader != null && mRefreshHeader.getRefreshState() != REFRESH_STATE_IDLE; }