2014-10-22 7 views
5

मुझे लगता है कि उस फ़ंक्शन में एक्शन_डाउन के बाद कोई ब्रेक नहीं है, तो कोड ACTION_MOVE में चलाया जा सकता है, है ना?एंड्रॉइड 5 में SwipeRefreshLayout.java में कोई ब्रेक नहीं है IterceptTouchEvent मॉड्यूल

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    ensureTarget(); 

    final int action = MotionEventCompat.getActionMasked(ev); 

    if (mReturningToStart && action == MotionEvent.ACTION_DOWN) { 
     mReturningToStart = false; 
    } 

    if (!isEnabled() || mReturningToStart || canChildScrollUp() || mRefreshing) { 
     // Fail fast if we're not in a state where a swipe is possible 
     return false; 
    } 

    switch (action) { 
     case MotionEvent.ACTION_DOWN: 
      setTargetOffsetTopAndBottom(mOriginalOffsetTop - mCircleView.getTop(), true); 
      mActivePointerId = MotionEventCompat.getPointerId(ev, 0); 
      mIsBeingDragged = false; 
      final float initialMotionY = getMotionEventY(ev, mActivePointerId); 
      if (initialMotionY == -1) { 
       return false; 
      } 
      mInitialMotionY = initialMotionY; 
      //-------NO Break here, why? It will run down to ACTION_MOVE 
     case MotionEvent.ACTION_MOVE: 
      if (mActivePointerId == INVALID_POINTER) { 
       Log.e(LOG_TAG, "Got ACTION_MOVE event but don't have an active pointer id."); 
       return false; 
      } 
      final float y = getMotionEventY(ev, mActivePointerId); 
      if (y == -1) { 
       return false; 
      } 
      final float yDiff = y - mInitialMotionY; 
      if (yDiff > mTouchSlop && !mIsBeingDragged) { 
       mIsBeingDragged = true; 
       mProgress.setAlpha(STARTING_PROGRESS_ALPHA); 
      } 
      break; 

     case MotionEventCompat.ACTION_POINTER_UP: 
      onSecondaryPointerUp(ev); 
      break; 

     case MotionEvent.ACTION_UP: 
     case MotionEvent.ACTION_CANCEL: 
      mIsBeingDragged = false; 
      mActivePointerId = INVALID_POINTER; 
      break; 
    } 

    return mIsBeingDragged; 
} 

मुझे नहीं पता कि ACTION_DOVE का इलाज सीधे ACTION_MOVE के साथ क्यों करें, क्या यह सही है? अग्रिम धन्यवाद।

+0

बस मेरे लॉग में आज, अच्छी जगह पर ध्यान दिया। धन्यवाद। –

उत्तर

1

अंत में मैं Google कोड पर एक बग रिपोर्ट पोस्ट करता हूं, यह भविष्य की रिलीज को स्वीकार किया जाता है। No break in SwipeRefreshLayout.java in android 5 onInterceptTouchEvent module

+0

मुझे अभी भी मेरे कोड में यह समस्या है। इस परिवर्तन में कहां शामिल है? –

संबंधित मुद्दे