7

Используя этотGestureDetector.SimpleOnGestureListener. Как определить событие ACTION_UP?

mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { 

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

только обнаруживает для одного события крана т.е. быстрого отвода и выпуска. Если я удерживаю и затем отпускаю, onSingleTapUp не вызывается.

Я ищу событие для движения, которое является ACTION_UP после удержания.

Я посмотрел на onShowPress, который вызывается, когда пользователь выполняет нисходящее действие, но затем я не был уверен, как определить ACTION_UP в то время как в onShowPress.

Обратите внимание, что это для recycler view, чтобы щелкнуть элементы. На данный момент я могу выделить один элемент, который работает, но если я его удерживаю, а затем отпускаю, он не вызывается.

+0

Вы решили свою проблему? – Eselfar

+1

@Eselfar Привет, я не решил эту проблему, но использовал другое решение, чтобы решить мою проблему, которая должна была установить OnClickListener на самом элементе itemView. –

ответ

1

Вы можете попробовать следующее в вашем методе onSingleTapUp:

@Override 
public boolean onSingleTapUp(MotionEvent e) { 
    if(e.getAction() == MotionEvent.ACTION_UP){ 

    // Do what you want 
    return true; 
    } 
    return false; 
} 
+0

Привет, извините за поздний ответ. Я пробовал код, но он не работал. Я все еще могу только выделить элемент. Я скоро отправлю код –

0

Вы можете унаследовать свой вид и переопределить onTouchEvent. Это позволит вам наблюдать за различными действиями до того, как детектор жестов справится с ними.

@Override 
public boolean onTouchEvent(MotionEvent e) { 

    int action = e.getActionMasked(); 
    if (action == MotionEvent.ACTION_UP) { 
     // do something here 
    } 

    return mGestureDetector.onTouchEvent(e); 
} 
Смежные вопросы