SlidingView onInterceptTouchEvent代码
public boolean onInterceptTouchEvent(MotionEvent ev) {
System.out.println("SlidingView onInterceptTouchEvent");
final int action = ev.getAction();
final float x = ev.getX();
final float y = ev.getY();
switch (action) {
case MotionEvent.ACTION_DOWN:
mIsAlreadySetViewState = false;
mLastMotionX = x;
mLastMotionY = y;
mIsBeingDragged = false;
break;
case MotionEvent.ACTION_MOVE:
final float dx = x - mLastMotionX;
final float xDiff = Math.abs(dx);
final float yDiff = Math.abs(y - mLastMotionY);
if(askChild(this,ev, dx)){
return false;
}
if (xDiff > mTouchSlop && xDiff > yDiff) {
mIsBeingDragged = true;
mLastMotionX = x;
}
break;
}
return mIsBeingDragged;
}
ViewPage onInterceptTouchEvent代码
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
System.out.println("MyViewPage onInterceptTouchEvent");
System.out.println(ev.getY()+"a");
if(ev.getY()<320){
System.out.println("ev.getY()<320");
getParent().requestDisallowInterceptTouchEvent(true);
return false;//true viewPage可以使用
}
final int action = ev.getAction();
final float x = ev.getX();
switch (action) {
case MotionEvent.ACTION_DOWN:
mLastMotionX = x;
break;
case MotionEvent.ACTION_MOVE:
final float dx = x - mLastMotionX;
System.out.println(ev.getY()+"b");
if(/*dx>0&&*/getCurrentItem()==0) {
System.out.println("getCurrentItem()==0");
System.out.println(ev.getY()+"a");
if(ev.getY()<320){
System.out.println("ev.getY()<320");
getParent().requestDisallowInterceptTouchEvent(true);
return false;//true viewPage可以使用
}
else{
if(dx>0)
return false;
}
}
break;
}
return true;
}
用于图片展示的ViewPage 不需要重写完整代码 http://download.youkuaiyun.com/detail/lj102800/7028939