5
5
import android .support .v4 .view .MotionEventCompat ;
6
6
import android .support .v4 .view .ViewCompat ;
7
7
import android .util .AttributeSet ;
8
- import android .util .Log ;
9
8
import android .util .TypedValue ;
10
9
import android .view .MotionEvent ;
11
10
import android .view .View ;
@@ -84,14 +83,14 @@ public PullRefreshLayout(Context context, AttributeSet attrs) {
84
83
ViewCompat .setChildrenDrawingOrderEnabled (this , true );
85
84
}
86
85
87
- public void setColorSchemeColors (int [] colorSchemeColors ) {
86
+ public void setColorSchemeColors (int [] colorSchemeColors ){
88
87
mColorSchemeColors = colorSchemeColors ;
89
88
mRefreshDrawable .setColorSchemeColors (colorSchemeColors );
90
89
}
91
90
92
- public void setRefreshStyle (int type ) {
91
+ public void setRefreshStyle (int type ){
93
92
setRefreshing (false );
94
- switch (type ) {
93
+ switch (type ){
95
94
case STYLE_MATERIAL :
96
95
mRefreshDrawable = new MaterialDrawable (getContext (), this );
97
96
break ;
@@ -111,7 +110,7 @@ public void setRefreshStyle(int type) {
111
110
mRefreshView .setImageDrawable (mRefreshDrawable );
112
111
}
113
112
114
- public int getFinalOffset () {
113
+ public int getFinalOffset (){
115
114
return mSpinnerFinalOffset ;
116
115
}
117
116
@@ -145,9 +144,6 @@ private void ensureTarget() {
145
144
@ Override
146
145
public boolean onInterceptTouchEvent (MotionEvent ev ) {
147
146
148
- if (mRefreshing )
149
- return onInterceptRefreshingTouchEvent (ev );
150
-
151
147
if (!isEnabled () || canChildScrollUp () || mRefreshing ) {
152
148
return false ;
153
149
}
@@ -195,72 +191,8 @@ public boolean onInterceptTouchEvent(MotionEvent ev) {
195
191
return mIsBeingDragged ;
196
192
}
197
193
198
- private boolean onInterceptRefreshingTouchEvent (MotionEvent ev ) {
199
- final int action = MotionEventCompat .getActionMasked (ev );
200
-
201
- switch (action ) {
202
- case MotionEvent .ACTION_DOWN :
203
- mIsBeingDragged = false ;
204
- mInitialMotionY = ev .getY ();
205
- break ;
206
- case MotionEvent .ACTION_MOVE :
207
- if (canChildScrollDown ()) {
208
- return true ;
209
- }
210
- break ;
211
- case MotionEvent .ACTION_UP :
212
- case MotionEvent .ACTION_CANCEL :
213
- mIsBeingDragged = false ;
214
- mActivePointerId = INVALID_POINTER ;
215
- break ;
216
- case MotionEventCompat .ACTION_POINTER_UP :
217
- onSecondaryPointerUp (ev );
218
- break ;
219
- }
220
- return true ;
221
- }
222
-
223
- private boolean onRefreshingTouchEvent (MotionEvent ev ) {
224
-
225
-
226
- final int action = MotionEventCompat .getActionMasked (ev );
227
-
228
- switch (action ) {
229
- case MotionEvent .ACTION_DOWN :
230
- mTarget .dispatchTouchEvent (ev );
231
- break ;
232
- case MotionEvent .ACTION_MOVE : {
233
- int offsetY = (int ) (ev .getY () - mInitialMotionY );
234
- mInitialMotionY = ev .getY ();
235
- if (mCurrentOffsetTop > mTotalDragDistance && offsetY > 0 ) {
236
- break ;
237
- }
238
- if (mCurrentOffsetTop <= 0 && offsetY < 0 ) {
239
- ev .offsetLocation (0 , mTotalDragDistance );
240
- mTarget .dispatchTouchEvent (ev );
241
- break ;
242
- }
243
- Log .i ("byz" , "scrollY = " + mTarget .getScrollY () + ", paddingTop = " + mTarget .getPaddingTop ());
244
- if (mTarget .getScrollY () == 0 ){
245
- setTargetOffsetTop (offsetY , true );
246
- }else {
247
-
248
- mTarget .dispatchTouchEvent (ev );
249
- }
250
- break ;
251
- }
252
- case MotionEvent .ACTION_CANCEL :
253
- case MotionEvent .ACTION_UP :
254
- mTarget .dispatchTouchEvent (ev );
255
- break ;
256
- }
257
- return true ;
258
- }
259
-
260
194
@ Override
261
195
public boolean onTouchEvent (MotionEvent ev ) {
262
- if (mRefreshing )
263
- return onRefreshingTouchEvent (ev );
264
196
265
197
if (!mIsBeingDragged ) {
266
198
return super .onTouchEvent (ev );
@@ -487,18 +419,18 @@ private boolean canChildScrollUp() {
487
419
}
488
420
489
421
private boolean canChildScrollDown () {
490
- // if (android.os.Build.VERSION.SDK_INT < 14) {
491
- if (mTarget instanceof AbsListView ) {
492
- final AbsListView absListView = (AbsListView ) mTarget ;
493
- return absListView .getChildCount () > 0
494
- && (absListView .getFirstVisiblePosition () > 0 || absListView .getChildAt (0 )
495
- .getTop () >= absListView .getPaddingTop ());
422
+ if (android .os .Build .VERSION .SDK_INT < 14 ) {
423
+ if (mTarget instanceof AbsListView ) {
424
+ final AbsListView absListView = (AbsListView ) mTarget ;
425
+ return absListView .getChildCount () > 0
426
+ && (absListView .getFirstVisiblePosition () > 0 || absListView .getChildAt (0 )
427
+ .getTop () < absListView .getPaddingTop ());
428
+ } else {
429
+ return mTarget .getScrollY () > 0 ;
430
+ }
496
431
} else {
497
- return mTarget . getScrollY () <= 0 ;
432
+ return ViewCompat . canScrollVertically ( mTarget , - 1 ) ;
498
433
}
499
- // } else {
500
- // return ViewCompat.canScrollVertically(mTarget, -1);
501
- // }
502
434
}
503
435
504
436
@ Override
0 commit comments