当我将此代码添加到我的ViewPager中时,ViewPager的滑动在垂直滚动视图内是平滑的。
mPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
v.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
});
但是当我将onClickListener添加到我的ImageView [在添加到Viewpager的适配器的片段中找到]时,我的ViewPager的滑动不正确。不正确的地方我需要一个STRAIGHT HORIZONTAL LINE滑动它去另一个页面不像之前[当我没有添加onClickListener]时,viewpager进入下一页甚至我做DIAGONAL刷卡。任何帮助深表感谢。感谢。
答案 0 :(得分:1)
我刚刚将setontouchlistener用于我的imageview并在那里设置条件。
以下是代码:
imgCarousel.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
pStart = new Point((int) event.getX(), (int) event.getY());
break;
}
case MotionEvent.ACTION_UP: {
break;
}
case MotionEvent.ACTION_MOVE:{
break;
}
case MotionEvent.ACTION_CANCEL:{
Point pCancel = new Point((int) event.getX(), (int) event.getY());
int difference = pStart.x - pCancel.x;
if(difference > 10){
mPager.setCurrentItem(HomeCarousel.currentPage+1);
}
}
default:
break;
}
return true;
}
});
答案 1 :(得分:0)
我认为,这是因为ImageView使用onClickListener拦截了touchEvent。 您可以将GestureOverlayView与ImageView一起使用 - http://developer.android.com/reference/android/gesture/GestureOverlayView.html
它可以处理触摸事件而不会拦截它们。