@@ -89,10 +89,10 @@ public class List extends HMBase<SmartRefreshLayout> {
89
89
private boolean isScrollStarted = false ;
90
90
private ScrollEvent scrollEvent = new ScrollEvent ();
91
91
92
- private RecyclerView .OnScrollListener mOnScrollListener = new RecyclerView .OnScrollListener () {
93
- int offsetX = 0 ;
94
- int offsetY = 0 ;
92
+ private int scrollOffsetX = 0 ;
93
+ private int scrollOffsetY = 0 ;
95
94
95
+ private RecyclerView .OnScrollListener mOnScrollListener = new RecyclerView .OnScrollListener () {
96
96
@ Override
97
97
public void onScrolled (RecyclerView recyclerView , int dx , int dy ) {
98
98
if (!mEventManager .contains (ScrollEvent .HM_EVENT_TYPE_SCROLL )) {
@@ -108,13 +108,13 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
108
108
// 但是当RecyclerView的item有变多或变少时,可能产生误差。
109
109
// int offsetX = recyclerView.computeHorizontalScrollOffset();
110
110
// int offsetY = recyclerView.computeVerticalScrollOffset();
111
- offsetX += dx ;
112
- offsetY += dy ;
111
+ scrollOffsetX += dx ;
112
+ scrollOffsetY += dy ;
113
113
114
114
scrollEvent .setType (ScrollEvent .HM_EVENT_TYPE_SCROLL );
115
115
scrollEvent .setState (ScrollEvent .HM_SCROLL_STATE_SCROLL );
116
- scrollEvent .setOffsetX (DPUtil .px2dpF (getContext (), offsetX ));
117
- scrollEvent .setOffsetY (DPUtil .px2dpF (getContext (), offsetY ));
116
+ scrollEvent .setOffsetX (DPUtil .px2dpF (getContext (), scrollOffsetX ));
117
+ scrollEvent .setOffsetY (DPUtil .px2dpF (getContext (), scrollOffsetY ));
118
118
scrollEvent .setDx (DPUtil .px2dpF (getContext (), dx ));
119
119
scrollEvent .setDy (DPUtil .px2dpF (getContext (), dy ));
120
120
scrollEvent .setTimestamp (System .currentTimeMillis ());
@@ -415,6 +415,11 @@ private void hideKeyboardIfNeed(int dx, int dy) {
415
415
}
416
416
}
417
417
418
+ private void resetScrollOffset () {
419
+ scrollOffsetX = 0 ;
420
+ scrollOffsetY = 0 ;
421
+ }
422
+
418
423
@ JsAttribute ("mode" )
419
424
public void setMode (String strMode ) {
420
425
int curMode ;
@@ -611,6 +616,7 @@ public void refresh(int count) {
611
616
}
612
617
isLoadingMore = false ;
613
618
619
+ resetScrollOffset ();
614
620
refreshNodeTree ();
615
621
}
616
622
0 commit comments