Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. Java ==============================
  2.  
  3. @Override
  4. public int convertToAbsoluteDirection(int flags, int layoutDirection) {
  5. if (swipeBack) {
  6. swipeBack = false;
  7. return 0;
  8. }
  9. return super.convertToAbsoluteDirection(flags, layoutDirection);
  10. }
  11.  
  12. @Override
  13. public void onChildDraw(Canvas c,
  14. RecyclerView recyclerView,
  15. RecyclerView.ViewHolder viewHolder,
  16. float dX, float dY,
  17. int actionState, boolean isCurrentlyActive) {
  18.  
  19. if (actionState == ACTION_STATE_SWIPE) {
  20. setTouchListener(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
  21. }
  22. super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
  23. }
  24.  
  25. private void setTouchListener(Canvas c,
  26. RecyclerView recyclerView,
  27. RecyclerView.ViewHolder viewHolder,
  28. float dX, float dY,
  29. int actionState, boolean isCurrentlyActive) {
  30.  
  31. recyclerView.setOnTouchListener(new View.OnTouchListener() {
  32. @Override
  33. public boolean onTouch(View v, MotionEvent event) {
  34. swipeBack = event.getAction() == MotionEvent.ACTION_CANCEL || event.getAction() == MotionEvent.ACTION_UP;
  35. return false;
  36. }
  37. });
  38. }
  39.  
  40. c# ===============================
  41.  
  42. public override int ConvertToAbsoluteDirection(int flags, int layoutDirection)
  43. {
  44. if (swipeBack)
  45. {
  46. swipeBack = false;
  47. return 0;
  48. }
  49. return base.ConvertToAbsoluteDirection(flags, layoutDirection);
  50. }
  51.  
  52. public override void OnChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, bool isCurrentlyActive)
  53. {
  54. if (actionState == ItemTouchHelper.ActionStateSwipe)
  55. {
  56. SetTouchListener(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
  57. }
  58. base.OnChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
  59. }
  60.  
  61. private void SetTouchListener(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, bool isCurrentlyActive)
  62. {
  63. recyclerView.Touch += (v, e) =>
  64. {
  65. swipeBack = e.Event.Action == MotionEventActions.Cancel || e.Event.Action == MotionEventActions.Up;
  66. };
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement