private void consumeNestedScroll(int dxUnconsumed,int dyUnconsumed,int dxFinalUnconsumed,int dyFinalUnconsumed){
  if (mOverScrollEffect == OverScrollEffect.BOUNCE && dyFinalUnconsumed != 0) {
    mUnconsumedOverScrollOffset+=-dyFinalUnconsumed;
    int maxOffset=mOverScrollOffsetLimit;
    if (mUnconsumedOverScrollOffset > 0) {
      mUnconsumedOverScrollOffset=Math.min(maxOffset,mUnconsumedOverScrollOffset);
    }
 else     if (mUnconsumedOverScrollOffset < 0) {
      mUnconsumedOverScrollOffset=Math.max(-maxOffset,mUnconsumedOverScrollOffset);
    }
    setScrollingOffset(getUnconsumedScrollingOffset());
  }
  pullEdgeEffects(dxUnconsumed,dyUnconsumed);
}

private void consumeNestedScroll ( int dxUnconsumed , int dyUnconsumed , int dxFinalUnconsumed , int dyFinalUnconsumed ) { if ( mOverScrollEffect == OverScrollEffect . BOUNCE && dyFinalUnconsumed != 0 ) { mUnconsumedOverScrollOffset += - dyFinalUnconsumed ; int maxOffset = mOverScrollOffsetLimit ; if ( mUnconsumedOverScrollOffset > 0 ) { mUnconsumedOverScrollOffset = Math . min ( maxOffset , mUnconsumedOverScrollOffset ) ; } else if ( mUnconsumedOverScrollOffset < 0 ) { mUnconsumedOverScrollOffset = Math . max ( - maxOffset , mUnconsumedOverScrollOffset ) ; } setScrollingOffset ( getUnconsumedScrollingOffset ( ) ) ; } pullEdgeEffects ( dxUnconsumed , dyUnconsumed ) ; }
consume the final unconsumed nested scroll after all behaviors done .
