/** * Created by qinwendou on 2018/7/2. */public class VpSwipeRefreshLayout extends SwipeRefreshLayout {    private float startY;    private float startX;    // 记录viewPager是否拖拽的标记    private boolean mIsVpDragger;    private int mTouchSlop;    //    private final int mTouchSlop;    public VpSwipeRefreshLayout(Context context) {        super(context);    }    public VpSwipeRefreshLayout(Context context, AttributeSet attrs) {        super(context, attrs);        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();    }    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        int action = ev.getAction();        switch (action) {            case MotionEvent.ACTION_DOWN:                // 记录手指按下的位置                startY = ev.getY();                startX = ev.getX();                // 初始化标记                mIsVpDragger = false;                break;            case MotionEvent.ACTION_MOVE:                // 如果viewpager正在拖拽中,那么不拦截它的事件,直接return false;                if(mIsVpDragger) {                    return false;                }                // 获取当前手指位置                float endY = ev.getY();                float endX = ev.getX();                float distanceX = Math.abs(endX - startX);                float distanceY = Math.abs(endY - startY);                // 如果X轴位移大于Y轴位移,那么将事件交给viewPager处理。                if(distanceX > mTouchSlop && distanceX > distanceY) {                    mIsVpDragger = true;                    return false;                }                break;            case MotionEvent.ACTION_UP:            case MotionEvent.ACTION_CANCEL:                // 初始化标记                mIsVpDragger = false;                break;        }        // 如果是Y轴位移大于X轴,事件交给swipeRefreshLayout处理。        return super.onInterceptTouchEvent(ev);    }}

直接使用即可。

更多相关文章

  1. 高德地图Android版SDK的应用(定位,添加自定义标记点)
  2. 关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记
  3. Android全屏模式,监听软键盘弹出事件。
  4. Android三种方法实现事件监听
  5. Android中RecyclerView简单的点击事件
  6. android典型监听事件实
  7. android 鼠标滚轮事件监听
  8. android处理Back键Home键和Menu键事件
  9. Android 手机切屏事件

随机推荐

  1. 【转】android编译系统的makefile文件And
  2. Android之路——第一个Android小程序(Andr
  3. Android多点触控揭秘
  4. android 由于使用Intent传送敏感数据(user
  5. 文章收集
  6. Android开发笔记——查询通话记录及短信
  7. android内嵌H5页面
  8. Android关于GET和POST发送请求
  9. SubscriptionController
  10. 新版 Android Studio 编译输出中文乱码问