2014-10-29 56 views
0

如何檢測在ListView上上下滑動。我曾嘗試以下方法在ListView上檢測滑動

  1. 使用onSimpleGestureListener,onFling()適用於一扔(即當我刷卡後離開屏幕)。但它不會被稱爲滑動(手指最終沒有從屏幕上擡起)。

2.在onSimpleGestureListener的onScroll()中,distanceY對於檢測向上和向下滑動沒有幫助。它可以正常工作,但可以在特定的滑動條件下將其值從負值變爲正值。

  • 使用onTouchListener

    public boolean onTouch(View v, MotionEvent event) { 
    
         return gestureDetector.onTouchEvent(event); 
         switch (event.getAction()) { 
    
          case MotionEvent.ACTION_DOWN: 
           before = event.getY(); 
           break; 
          case MotionEvent.ACTION_MOVE: 
           now = event.getY(); 
    
           if (now < before) { 
    
             upSwipe() 
    
           } else if (now > before) { 
    
             downSwipe(); 
    
           } 
    
         } 
         return false; 
        } 
    

    當我向上滑動,可變now有時變得比可變previous,有時小大。所以調用upSwipe()和downSwipe()。

  • 我幾個小時都在b my我的腦袋。無法解決這個問題。

    回答

    -1

    您是否試圖返回true而不是返回false。基於Detecting Common Gestures documentation

    「要小心創建一個偵聽器,該偵聽器爲ACTION_DOWN事件返回false如果這樣做,將不會爲隨後的ACTION_MOVE和ACTION_UP事件調用偵聽器,這是因爲ACTION_DOWN是所有觸摸的起點事件「。