京东、淘宝等电商类应用中常用到的商品详情页,上拉查看图文详情的效果用到VerticalViewPager。其中嵌套scrollview需要对滑动事件做冲突处理。
在自定义的scrollview中作如下处理:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
lastY = ev.getY();
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
break;
default:
break;
}
return super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
//当滑到底部时,将滑动事件交给父控件(如需顶部切换令
//lastMoveY - nowMoveY < 0,应该是,我没有验证,o(╯□╰)o)
if (lastY - ev.getY() > 0
&& getScrollY() + getMeasuredHeight() >= getChildAt(0)
.getMeasuredHeight()) {
getParent().requestDisallowInterceptTouchEvent(false);
}
break;
default:
break;
}
return super.onTouchEvent(ev);
}