2014-09-30 54 views

回答

0

这解决了我的问题! :)

svMovieDetails.setOnTouchListener(新View.OnTouchListener(){

 @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      switch (event.getAction()) { 
       case MotionEvent.ACTION_SCROLL: 
       case MotionEvent.ACTION_MOVE: 
        Log.e("SCROLL", "ACTION_SCROLL"); 
        break; 
       case MotionEvent.ACTION_DOWN: 
        Log.e("SCROLL", "ACTION_DOWN"); 
        break; 
       case MotionEvent.ACTION_CANCEL: 
       case MotionEvent.ACTION_UP: 
        Log.e("SCROLL", "SCROLL_STOP"); 
        break; 
      } 
      return false; 
     } 
    }); 
0
import android.view.GestureDetector; 
import android.view.GestureDetector.SimpleOnGestureListener; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 

public class OnSwipeTouchListener implements OnTouchListener { 

    private final GestureDetector gestureDetector; 

    public OnSwipeTouchListener (Context ctx){ 
     gestureDetector = new GestureDetector(ctx, new GestureListener()); 
    } 

    private final class GestureListener extends SimpleOnGestureListener { 

     private static final int SWIPE_THRESHOLD = 100; 
     private static final int SWIPE_VELOCITY_THRESHOLD = 100; 

     @Override 
     public boolean onDown(MotionEvent e) { 
      return true; 
     } 

     @Override 
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
      boolean result = false; 
      try { 
       float diffY = e2.getY() - e1.getY(); 
       float diffX = e2.getX() - e1.getX(); 
       if (Math.abs(diffX) > Math.abs(diffY)) { 
        if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { 
         if (diffX > 0) { 
          onSwipeRight(); 
         } else { 
          onSwipeLeft(); 
         } 
        } 
        result = true; 
       } 
       else if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) { 
         if (diffY > 0) { 
          onSwipeBottom(); 
         } else { 
          onSwipeTop(); 
         } 
        } 
        result = true; 

      } catch (Exception exception) { 
       exception.printStackTrace(); 
      } 
      return result; 
     } 
    } 

    public void onSwipeRight() { 
    } 

    public void onSwipeLeft() { 
    } 

    public void onSwipeTop() { 
    } 

    public void onSwipeBottom() { 
    } 
} 

可能是这一个帮助你,我从this讨论

0

让您可以扩展ScrollView,并覆盖

@Override 
protected void onScrollChanged(int l, int t, int oldl, int oldt) 

得到滚动。要在活动/片段中获取此值,还可以定义听众

+0

感谢。但如何得到它如果滚动正在发生或结束? – Neha 2014-09-30 14:18:51

+0

我觉得你可以考虑滚动在空闲时'oldt == t'和'oldl == l'。如果发生,值会有所不同 – Blackbelt 2014-09-30 14:24:07