private boolean tryToMove(float deltaY){
  if ((deltaY > 0 && mCurrentPos == 0)) {
    if (DEBUG) {
      Log.d(LOG_TAG,String.format("has reached the bottom"));
    }
    return false;
  }
  if ((deltaY < 0 && mCurrentPos == -mHeaderHeight)) {
    if (DEBUG) {
      Log.d(LOG_TAG,String.format("has reached the top"));
    }
    return false;
  }
  int to=mCurrentPos + (int)deltaY;
  if (to < -mHeaderHeight) {
    if (DEBUG) {
      Log.d(LOG_TAG,String.format("over top"));
    }
    to=-mHeaderHeight;
  }
  if (to > 0) {
    if (DEBUG) {
      Log.d(LOG_TAG,String.format("over bottom"));
    }
    to=0;
  }
  return moveTo(to);
}

private boolean tryToMove ( float deltaY ) { if ( ( deltaY > 0 && mCurrentPos == 0 ) ) { if ( DEBUG ) { Log . d ( LOG_TAG , String . format ( "has reached the bottom" ) ) ; } return false ; } if ( ( deltaY < 0 && mCurrentPos == - mHeaderHeight ) ) { if ( DEBUG ) { Log . d ( LOG_TAG , String . format ( "has reached the top" ) ) ; } return false ; } int to = mCurrentPos + ( int ) deltaY ; if ( to < - mHeaderHeight ) { if ( DEBUG ) { Log . d ( LOG_TAG , String . format ( "over top" ) ) ; } to = - mHeaderHeight ; } if ( to > 0 ) { if ( DEBUG ) { Log . d ( LOG_TAG , String . format ( "over bottom" ) ) ; } to = 0 ; } return moveTo ( to ) ; }
if deltay > 0 , trytomove the content down
