2015-03-09 5 views
0

меня SimpleGestureDetectorListener и реализуется onScroll следующим образом:Android GestureDetector OnScroll неожиданное поведение

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,  float distanceY) 
    { 
     Log.i("MOVE_LARGE", "e1.getY=" + e1.getY()+" "+"e2.getY="+e2.getY()); 
     Log.i("MOVE_SMALL", "distanceY=" + distanceY); 
     FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)  fragmentContainer.getLayoutParams(); 
     int nextMargin = params.topMargin - (int) distanceY; 
     if (Math.abs(distanceY)> MOVE_TRESHOLD) 
     { 
      setContainerMargin(nextMargin); 
     } 
     return true; 
    } 

Как вы можете догадаться, я переместить некоторую точку зрения. Поэтому, когда я перемещаю его в какой-то момент, когда останавливаю палец на экране, просмотр начинает прыгать туда-сюда.

Я зарегистрированные события и имею такую ​​картину:

03-09 10:57:02.874: I/MOVE_EVENT(27478): 2 
    03-09 10:57:02.875: I/MOVE_LARGE(27478): e1.getY=24.892685 e2.getY=261.41266 
    03-09 10:57:02.875: I/MOVE_SMALL(27478): distanceY=23.0 
    03-09 10:57:02.891: I/MOVE_EVENT(27478): 2 
    03-09 10:57:02.892: I/MOVE_LARGE(27478): e1.getY=24.892685 e2.getY=284.41266 
    03-09 10:57:02.892: I/MOVE_SMALL(27478): distanceY=-23.0 
    03-09 10:57:02.908: I/MOVE_EVENT(27478): 2 
    03-09 10:57:02.908: I/MOVE_LARGE(27478): e1.getY=24.892685 e2.getY=261.41266 
    03-09 10:57:02.908: I/MOVE_SMALL(27478): distanceY=23.0 
    03-09 10:57:02.925: I/MOVE_EVENT(27478): 2 
    03-09 10:57:02.925: I/MOVE_LARGE(27478): e1.getY=24.892685 e2.getY=284.41266 
    03-09 10:57:02.925: I/MOVE_SMALL(27478): distanceY=-23.0 
    03-09 10:57:02.941: I/MOVE_EVENT(27478): 2 

И не устает повторять, если я не перемещайте палец. Трешол не проблема, потому что расстояние варьируется в широких пределах (от 10 до 100). Событие равно 2 == ACTION_MOVE.

В чем проблема и как его обойти?

ответ

1

Хорошо, проблема в том, что я пытался переместить некоторый вид, и я назначил прослушиватель касания (не намеренно) для просмотра того, что было перемещено. Вот что вызвало мое «неожиданное поведение».

Смежные вопросы