/**
* 能够兼容ViewPager的ScrollView
* @Description: 解决了ViewPager在ScrollView中的滑动反弹问题
*/
public class ScrollViewExtend extends ScrollView {
// 滑动距离及坐标
private float xDistance, yDistance, xLast, yLast;
public ScrollViewExtend(Context context, AttributeSet attrs) {
super(context, attrs);
}
@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 super.onInterceptTouchEvent(ev);
}
} ScrollView嵌套ViewPager冲突的解决办法
最新推荐文章于 2024-04-18 12:51:50 发布
本文介绍了一种改进的ScrollView实现,该实现解决了ViewPager嵌套在ScrollView中时存在的滑动反弹问题。通过重写onInterceptTouchEvent方法,实现了对触摸事件的精确拦截逻辑,确保了ViewPager的正常工作。
1664

被折叠的 条评论
为什么被折叠?



