2012-12-07 46 views

回答

2

你可以找到它像以下:

私人GestureDetector.SimpleOnGestureListener simpleOnGestureListener =新GestureDetector.SimpleOnGestureListener(){

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 

     if(e1.getX() > e2.getX()) 
      isScrollingTowardsLeft = true; 
     else 
      isScrollingTowardsLeft = false; 
     return false; 
    }; 

};

+0

權日e點;謝謝! – Sipty

0

邏輯的一點點爲我工作。你可以簡單地採取兩個指針[firstPointerCurrentValue,firstPointerLastValue](....不要恐慌firstPointer是變量,總是指向列表中的第一個可見項),並匹配他們的新和更新values.`

int firstPointerCurrentValue = 0; 
int firstPointerLastValue = 0; 

........

lv.setOnScrollListener(new OnScrollListener() { 
     @Override 
     public void onScrollStateChanged(AbsListView alv, int scrollState) { 

      checkValue(firstPointerCurrentValue, firstPointerLastValue); 
      firstPointerLastValue = firstPointerCurrentValue; 
     } 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, 
       int visibleItemCount, int totalItemCount) { 

      firstPointerCurrentValue = firstVisibleItem; 

     } 
    }); 

......

boolean checkValue(int firstPointerCurrentValue, int firstPointerLastValue) { 

    if (firstPointerCurrentValue > firstPointerLastValue) { 
     Toast.makeText(getBaseContext(), "DOWN ", Toast.LENGTH_SHORT) 
     .show(); 
     ab.hide(); 
    } else if (firstPointerCurrentValue < firstPointerLastValue) { 
     Toast.makeText(getBaseContext(), "UP ", 
     Toast.LENGTH_SHORT).show(); 

    } else { 
     // Toast.makeText(getBaseContext(), "No Move ", Toast.LENGTH_SHORT) 
     // .show(); 
    } 

    return false; 
}