Avant de marquer cette question comme doublon, veuillez noter que j'ai regardé toutes les solutions à des questions similaires ici sur Stackoverflow et qu'elles n'ont pas fonctionné.Comment arrêter le détecteur de gestes d'appuyer longuement sur un seul robinet lorsque l'on clique sur un élément dans recyclerview?
Voici le processus dans lequel j'ai implémenté le détecteur de mouvement. Vous verrez que dans la classe privée qui étend GestureDetector.SimpleOnGestureListener, j'ai seulement créé du code pour un appui long, mais le code contenu dans onLongPress se déclenche également en un seul clic.
classe implémente OnItemTouchListsner voir le code ci-dessous
public class MyFragment extends Fragment implements RecyclerView.OnItemTouchListener
Je crée une variable privée voir le code ci-dessous
private GestureDetectorCompat gestureDetector;
Je cède gestureDetector à onCreateView voir le code ci-dessous
gestureDetector = new GestureDetectorCompat(getActivity().getApplicationContext(), new RecyclerViewOnGestureListener());
je mets en œuvre les méthodes nécessaires pour OnItemTouchListener voir le code ci-dessous
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
gestureDetector.onTouchEvent(e);
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
Je crée une classe privée pour l'auditeur geste voir le code ci-dessous
private class RecyclerViewOnGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public void onLongPress(MotionEvent e) {
//code in here executes on single tap, but should only execute on long press
super.onLongPress(e);
}
}
Merci pour votre aide. Je l'ai réparé :) C'était une bonne suggestion, mais n'a pas résolu le problème. voir ma réponse ... – HaloMediaz