Open minamihoshi opened 6 years ago
目的是交换横纵坐标,以实现竖向滑动的效果
在super那行不是已经转换过了么。 @MikeAfc
这种swap event的方法来实现竖向滑动的方法(即使按比例做了适配),虽然看起来可行,但实际上使用的时候有问题的,特别是宽高比差异大的情况下,这种感受特别严重。有时候,你在竖直方向下滑动一个距离,但它被按比例转换成横坐标的时候,转化成一个很小的值,导致viewpager认为这个距离并不应该翻页。但你实际上认为这个距离,在竖直方向上,是达到了翻页的临界点的了。 我在实际项目上遇到了这个问题。所以我把viewpager的源码复制过来,改了部分源码,才最终解决这个问题
辛苦把你改的viewpager 源码分享出来
private MotionEvent swapTouchEvent(MotionEvent event) { float width = getWidth(); float height = getHeight();
onInterceptTouchEvent方法中 boolean intercept = super.onInterceptTouchEvent(swapTouchEvent(ev)); 已将坐标转换后的ev传入父类方法判断是否拦截 下一行中调用的swapTouchEvent(ev); 作用是什么呢?