Skip to content

横向滑动,在recyclerview等布局使用多个的时候会有明显的滑动冲突 #104

Open
@AzusaL

Description

@AzusaL

我觉得可以在调用requestDisallowInterceptTouchEvent的时候加个判断,判断当前为横向滑动,我是这样做的:

case MotionEvent.ACTION_DOWN:
// 记录手指按下的位置
mStartY = event.getY();
mStartX = event.getX();
mDragger = false;
..............
case MotionEvent.ACTION_MOVE:
// 获取当前手指位置
float endY = event.getY();
float endX = event.getX();
//获取X,Y滑动距离的绝对值
float distanceX = Math.abs(endX - mStartX);
float distanceY = Math.abs(endY - mStartY);

            // 判断X轴位移大于Y轴距离
            if ((distanceX > mTouchSlop && distanceX > distanceY) || mDragger) {
                getParent().requestDisallowInterceptTouchEvent(true);
                mDragger = true;
                .............
             }

case MotionEvent.ACTION_CANCEL:
mDragger = false;
.............
case MotionEvent.ACTION_UP:
mDragger = false;
.............

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions