Skip to content

Commit b970011

Browse files
author
anhtt
committed
Fix load more when pull refresh disable
1 parent 788ca6f commit b970011

File tree

4 files changed

+53
-105
lines changed

4 files changed

+53
-105
lines changed

xrecyclerview/src/main/java/com/jcodecraeer/xrecyclerview/JellyView.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public void refreshComplete(){
9797
@Override
9898
public void onMove(float delta) {
9999
jellyHeight = jellyHeight + (int)delta;
100-
Log.i("jellyHeight", "delta = " + delta);
100+
// Log.i("jellyHeight", "delta = " + delta);
101101
this.invalidate();
102102
}
103103

xrecyclerview/src/main/java/com/jcodecraeer/xrecyclerview/StickyScrollLinearLayout.java

+17-17
Original file line numberDiff line numberDiff line change
@@ -107,23 +107,23 @@ public void setTargetFirstVisiblePosition(int targetFirstVisiblePosition) {
107107

108108
@Override
109109
public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes) {
110-
Log.e(TAG, "onStartNestedScroll "+child.toString()+" "+target.toString());
110+
// Log.e(TAG, "onStartNestedScroll "+child.toString()+" "+target.toString());
111111
return true;
112112
}
113113

114114
@Override
115115
public void onNestedScrollAccepted(@NonNull View child, @NonNull View target, int nestedScrollAxes) {
116-
Log.e(TAG, "onNestedScrollAccepted");
116+
// Log.e(TAG, "onNestedScrollAccepted");
117117
}
118118

119119
@Override
120120
public void onStopNestedScroll(View target) {
121-
Log.e(TAG, "onStopNestedScroll "+target.toString());
121+
// Log.e(TAG, "onStopNestedScroll "+target.toString());
122122
}
123123

124124
@Override
125125
public void onNestedScroll(@NonNull View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
126-
Log.e(TAG, "onNestedScroll "+dyConsumed+"----"+dyUnconsumed);
126+
// Log.e(TAG, "onNestedScroll "+dyConsumed+"----"+dyUnconsumed);
127127
}
128128

129129
@Override
@@ -150,11 +150,11 @@ public void onNestedPreScroll(@NonNull View target, int dx, int dy, @NonNull int
150150

151151
int scrollY = getScrollY();
152152
boolean temp = dy > 0 && (scrollY < mTopViewHeight);
153-
Log.e(TAG,
154-
"mTopViewHeight == "+mTopViewHeight
155-
+"\ndy == "+dy
156-
+"\nscrollY == "+scrollY
157-
+"\nhiddenTop && showTop "+temp);
153+
// Log.e(TAG,
154+
// "mTopViewHeight == "+mTopViewHeight
155+
// +"\ndy == "+dy
156+
// +"\nscrollY == "+scrollY
157+
// +"\nhiddenTop && showTop "+temp);
158158
if(!temp){
159159
// judge
160160
temp = dy < 0
@@ -165,11 +165,11 @@ public void onNestedPreScroll(@NonNull View target, int dx, int dy, @NonNull int
165165
||
166166
firstVisiblePosition==targetFirstVisiblePosition
167167
);
168-
Log.e(TAG,
169-
"mTopViewHeight == "+mTopViewHeight
170-
+"\ndy == "+dy
171-
+"\nscrollY == "+scrollY
172-
+"\nfirstVisiblePosition "+firstVisiblePosition);
168+
// Log.e(TAG,
169+
// "mTopViewHeight == "+mTopViewHeight
170+
// +"\ndy == "+dy
171+
// +"\nscrollY == "+scrollY
172+
// +"\nfirstVisiblePosition "+firstVisiblePosition);
173173
}
174174
if (temp) {
175175
scrollBy(0, dy);
@@ -179,13 +179,13 @@ public void onNestedPreScroll(@NonNull View target, int dx, int dy, @NonNull int
179179

180180
@Override
181181
public boolean onNestedFling(@NonNull View target, float velocityX, float velocityY, boolean consumed) {
182-
Log.e(TAG, "onNestedFling");
182+
// Log.e(TAG, "onNestedFling");
183183
return false;
184184
}
185185

186186
@Override
187187
public boolean onNestedPreFling(@NonNull View target, float velocityX, float velocityY) {
188-
Log.e(TAG, "onNestedPreFling");
188+
// Log.e(TAG, "onNestedPreFling");
189189
//down - //up+
190190
if (getScrollY() >= mTopViewHeight) return false;
191191
fling((int) velocityY);
@@ -194,7 +194,7 @@ public boolean onNestedPreFling(@NonNull View target, float velocityX, float vel
194194

195195
@Override
196196
public int getNestedScrollAxes() {
197-
Log.e(TAG, "getNestedScrollAxes");
197+
// Log.e(TAG, "getNestedScrollAxes");
198198
return 0;
199199
}
200200

xrecyclerview/src/main/java/com/jcodecraeer/xrecyclerview/XRecyclerView.java

+35-14
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import android.graphics.Rect;
66
import android.graphics.drawable.Drawable;
77
import android.util.AttributeSet;
8-
import android.util.Log;
98
import android.view.MotionEvent;
109
import android.view.View;
1110
import android.view.ViewGroup;
@@ -25,6 +24,7 @@
2524
import java.util.List;
2625

2726
import static com.jcodecraeer.xrecyclerview.BaseRefreshHeader.STATE_DONE;
27+
import static com.jcodecraeer.xrecyclerview.BaseRefreshHeader.STATE_REFRESHING;
2828

2929
public class XRecyclerView extends RecyclerView {
3030
private boolean isLoadingData = false;
@@ -452,11 +452,9 @@ void activeLoadMore() {
452452

453453
@Override
454454
public void onScrollStateChanged(int state) {
455-
// Log.d(getClass().getSimpleName(), "onScrollStateChanged() called with: state = [" + state + "]");
456455
super.onScrollStateChanged(state);
457456
if (state == RecyclerView.SCROLL_STATE_IDLE && mLoadingListener != null && !isLoadingData && loadingMoreEnabled) {
458457
LayoutManager layoutManager = getLayoutManager();
459-
460458
int lastVisibleItemPosition;
461459
if (layoutManager instanceof GridLayoutManager) {
462460
lastVisibleItemPosition = ((GridLayoutManager) layoutManager).findLastVisibleItemPosition();
@@ -467,17 +465,29 @@ public void onScrollStateChanged(int state) {
467465
} else {
468466
lastVisibleItemPosition = ((LinearLayoutManager) layoutManager).findLastVisibleItemPosition();
469467
}
470-
int adjAdapterItemCount = layoutManager.getItemCount() + getHeaders_includingRefreshCount() + (pullRefreshEnabled ? 1 : 2);
468+
int adjAdapterItemCount = layoutManager.getItemCount() + getHeaders_includingRefreshCount();
469+
//Log.e("aaaaa","adjAdapterItemCount "+adjAdapterItemCount +" getItemCount "+layoutManager.getItemCount());
470+
471471
int status = STATE_DONE;
472+
472473
if (mRefreshHeader != null)
473474
status = mRefreshHeader.getState();
474-
if (!isWrappedByScrollView
475-
&& layoutManager.getChildCount() > 0
476-
&& lastVisibleItemPosition >= adjAdapterItemCount - limitNumberToCallLoadMore
477-
&& adjAdapterItemCount >= layoutManager.getChildCount()
478-
&& !isNoMore
479-
&& status < ArrowRefreshHeader.STATE_REFRESHING) {
480-
activeLoadMore();
475+
if (
476+
layoutManager.getChildCount() > 0
477+
&& lastVisibleItemPosition >= adjAdapterItemCount - limitNumberToCallLoadMore
478+
&& adjAdapterItemCount >= layoutManager.getChildCount()
479+
&& !isNoMore
480+
&& status < ArrowRefreshHeader.STATE_REFRESHING
481+
) {
482+
isLoadingData = true;
483+
if (mFootView instanceof LoadingMoreFooter) {
484+
((LoadingMoreFooter) mFootView).setState(LoadingMoreFooter.STATE_LOADING);
485+
} else {
486+
if (footerViewCallBack != null) {
487+
footerViewCallBack.onLoadingMore(mFootView);
488+
}
489+
}
490+
mLoadingListener.onLoadMore();
481491
}
482492
}
483493
}
@@ -534,6 +544,11 @@ private boolean isOnTop() {
534544
return mRefreshHeader.getParent() != null;
535545
}
536546

547+
public boolean isRefreshing() {
548+
if (mRefreshHeader != null) return mRefreshHeader.getState() == STATE_REFRESHING;
549+
return false;
550+
}
551+
537552
private class DataObserver extends RecyclerView.AdapterDataObserver {
538553
@Override
539554
public void onChanged() {
@@ -632,11 +647,17 @@ public int getHeadersCount() {
632647
@Override
633648
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
634649
if (viewType == TYPE_REFRESH_HEADER) {
635-
return new SimpleViewHolder(mRefreshHeader);
650+
SimpleViewHolder refreshHolder = new SimpleViewHolder(mRefreshHeader);
651+
refreshHolder.setIsRecyclable(false);
652+
return refreshHolder;
636653
} else if (isHeaderType(viewType)) {
637-
return new SimpleViewHolder(getHeaderViewByType(viewType));
654+
SimpleViewHolder headerHolder = new SimpleViewHolder(getHeaderViewByType(viewType));
655+
headerHolder.setIsRecyclable(false);
656+
return headerHolder;
638657
} else if (viewType == TYPE_FOOTER) {
639-
return new SimpleViewHolder(mFootView);
658+
SimpleViewHolder footerHolder = new SimpleViewHolder(mFootView);
659+
footerHolder.setIsRecyclable(false);
660+
return footerHolder;
640661
}
641662
return adapter.onCreateViewHolder(parent, viewType);
642663
}

xrecyclerview/src/main/res/layout/pull_to_refresh_head.xml

-73
This file was deleted.

0 commit comments

Comments
 (0)