Guest User

Untitled

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