Guest User

Untitled

a guest
Jan 22nd, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. mRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(getContext(), mRecyclerView, new RecyclerTouchListener.ClickListener() {
  2. @Override
  3. public void onSingleTapConfirmed(View view, int position) {}
  4. @Override
  5. public void onDoubleTap(View view, int position){}
  6. @Override
  7. public void onLongClick(View view, int position) {}
  8. }));
  9.  
  10. public class RecyclerTouchListener implements recyclerView.OnItemTouchListener{
  11. private GestureDetector gestureDetector;
  12. private ClickListener clickListener;
  13.  
  14. public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
  15. this.clickListener = clickListener;
  16. gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
  17. @Override
  18. public boolean onSingleTapConfirmed(MotionEvent e) {
  19. return true;
  20. }
  21.  
  22. @Override
  23. public void onLongPress(MotionEvent e) {
  24. View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
  25. if (child != null && clickListener != null) {
  26. clickListener.onLongClick(child, recyclerView.getChildPosition(child));
  27. }
  28. }
  29. @Override
  30. public boolean onDoubleTap(MotionEvent e) {
  31.  
  32. return true;
  33. }
  34. });
  35. }
  36.  
  37. @Override
  38. public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
  39.  
  40. View child = rv.findChildViewUnder(e.getX(), e.getY());
  41. if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
  42. clickListener.onSingleTapConfirmed(child, rv.getChildPosition(child));
  43. }
  44. return false;
  45. }
  46. public interface ClickListener {
  47. void onSingleTapConfirmed(View view, int position);
  48. void onDoubleTap(View view, int position);
  49. void onLongClick(View view, int position);
  50. }}
Add Comment
Please, Sign In to add comment