Advertisement
Guest User

Untitled

a guest
May 31st, 2016
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. import android.content.Context;
  2. import android.support.v4.view.ViewPager;
  3. import android.util.AttributeSet;
  4. import android.view.MotionEvent;
  5.  
  6. public class SwipeOutViewPager extends ViewPager {
  7.  
  8. private float mVelocityX;
  9.  
  10. private OnSwipeOutListener mSwipeOutListener;
  11.  
  12. public SwipeOutViewPager(Context context) {
  13. super(context);
  14. }
  15.  
  16. public SwipeOutViewPager(Context context, AttributeSet attrs) {
  17. super(context, attrs);
  18. }
  19.  
  20. public void setOnSwipeOutListener(OnSwipeOutListener listener) {
  21. mSwipeOutListener = listener;
  22. }
  23.  
  24. @Override
  25. public boolean onInterceptTouchEvent(MotionEvent ev) {
  26. if (ev.getAction() == MotionEvent.ACTION_DOWN) {
  27. mVelocityX = ev.getX();
  28. }
  29. return super.onInterceptTouchEvent(ev);
  30. }
  31.  
  32. @Override
  33. public boolean onTouchEvent(MotionEvent ev) {
  34. if (mSwipeOutListener != null) {
  35. int last = getAdapter().getCount() - 1;
  36. boolean lastItem = getCurrentItem() == last;
  37. boolean firstItem = getCurrentItem() == 0;
  38.  
  39. if (firstItem || lastItem) {
  40. float x = ev.getX();
  41.  
  42. switch (ev.getAction()) {
  43. case MotionEvent.ACTION_MOVE:
  44. break;
  45. case MotionEvent.ACTION_UP:
  46. if (firstItem && x > mVelocityX) {
  47. //swipe out at start
  48. mSwipeOutListener.onSwipeOut(false);
  49. } else if (lastItem && x < mVelocityX) {
  50. //swipe out at end
  51. mSwipeOutListener.onSwipeOut(true);
  52. }
  53. break;
  54. }
  55. } else {
  56. mVelocityX = 0;
  57. }
  58. }
  59. return super.onTouchEvent(ev);
  60. }
  61.  
  62. public interface OnSwipeOutListener {
  63.  
  64. void onSwipeOut(boolean end);
  65.  
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement