修改一下可以用的banner----->>>>>>http://www.jianshu.com/p/a5655934f622
//与嵌套fragment和下拉刷新冲突解决(加到banner中)
/**
* 事件分发
*/
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
// getParent().requestDisallowInterceptTouchEvent(true);//原来的
//完美解决与下拉刷新之间的冲突
getParent().requestDisallowInterceptTouchEvent(true);
int x = (int) event.getRawX();
int y = (int) event.getRawY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lastX = x;
lastY = y;
break;
case MotionEvent.ACTION_MOVE:
int deltaY = y - lastY;
int deltaX = x - lastX;
if (Math.abs(deltaX) < Math.abs(deltaY)) {
getParent().requestDisallowInterceptTouchEvent(false);
} else {
getParent().requestDisallowInterceptTouchEvent(true);
}
default:
break;
}
return super.dispatchTouchEvent(event);
}
//在Banner中更改添加
private int lastX;
private int lastY;
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//完美解决与下拉刷新之间的冲突
getParent().requestDisallowInterceptTouchEvent(true);
int x = (int) ev.getRawX();
int y = (int) ev.getRawY();
int action = ev.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
lastX = x;
lastY = y;
pauseScroll();
break;
case MotionEvent.ACTION_UP:
goScroll();
break;
case MotionEvent.ACTION_CANCEL:
goScroll();
break;
case MotionEvent.ACTION_MOVE:
int deltaY = y - lastY;
int deltaX = x - lastX;
if (Math.abs(deltaX) < Math.abs(deltaY)) {
getParent().requestDisallowInterceptTouchEvent(false);
} else {
getParent().requestDisallowInterceptTouchEvent(true);
}
break;
}
return super.dispatchTouchEvent(ev);
}