2019-11-13ViewPager+NestedScrollView滑动问题

核心代码就是重写NestScrollView的onIntereptTouchEvent方法,判断手势滑动方法
public class JudgeNestedScrollView extends NestedScrollView {
private boolean isNeedScroll = true;
private float xDistance, yDistance, xLast, yLast;

public JudgeNestedScrollView(@NonNull Context context) {
    super(context);
}

public JudgeNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
}

public JudgeNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
        case MotionEvent.ACTION_DOWN:
            xDistance = yDistance = 0f;
            xLast = ev.getX();
            yLast = ev.getY();
            break;
        case MotionEvent.ACTION_MOVE:
            final float curX = ev.getX();
            final float curY = ev.getY();
            xDistance += Math.abs(curX - xLast);
            yDistance += Math.abs(curY - yLast);
            xLast = curX;
            yLast = curY;
            if (xDistance > yDistance) {
                return false;
            }
            return isNeedScroll;

    }
    return super.onInterceptTouchEvent(ev);
}

/*
改方法用来处理NestedScrollView是否拦截滑动事件
 */
public void setNeedScroll(boolean isNeedScroll) {
    this.isNeedScroll = isNeedScroll;
}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容