Android 用两个手指滑动ViewPager

Android 用两个手指滑动ViewPager,android,android-viewpager,touch-event,Android,Android Viewpager,Touch Event,我想用两个手指实现ViewPager滑动。 我试图实现ViewPager的一个子类,覆盖onTouchEvent,并仅当触摸由两个手指完成时才将方法传递给超类。 但有一个问题:滑动动画也适用于1个手指! 我想我必须重写其他方法 这是我的ViewPager类: public class MyViewPager extends ViewPager{ public MyViewPager(Context context) { super(context); } public MyViewPa

我想用两个手指实现ViewPager滑动。 我试图实现ViewPager的一个子类,覆盖onTouchEvent,并仅当触摸由两个手指完成时才将方法传递给超类。 但有一个问题:滑动动画也适用于1个手指! 我想我必须重写其他方法

这是我的ViewPager类:

public class MyViewPager extends ViewPager{
public MyViewPager(Context context) {
    super(context);
}

public MyViewPager(Context context,AttributeSet attributeSet) {
    super(context,attributeSet);
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
    int n = ev.getPointerCount(); //number of fingers
    if (n == 2)
        return super.onTouchEvent(ev);
    else return false;
}
}

重写onInterceptTouchEvent()就可以了。根据中的评论,它是决定是否开始滚动的地方。

我在写这段代码,它的工作时间是两个手指

boolean freeTwo = false;

@Override
public boolean onTouchEvent(MotionEvent ev) {

    final int action = ev.getAction() & MotionEventCompat.ACTION_MASK;
    int counter = ev.getPointerCount() ;

    if(counter == 1 && (action== MotionEvent.ACTION_DOWN || action== MotionEvent.ACTION_MOVE) && !freeTwo)
    {
        if(action == MotionEvent.ACTION_MOVE)
            freeTwo = true;
        return super.onTouchEvent(ev);
    }

    if(counter == 2 && (action== MotionEvent.ACTION_POINTER_DOWN|| action== MotionEvent.ACTION_MOVE || action== MotionEvent.ACTION_POINTER_UP) && freeTwo)
    {
        if(action== MotionEvent.ACTION_POINTER_UP)
            freeTwo = false;
        return super.onTouchEvent(ev);
    }

    ev.setAction(MotionEvent.ACTION_UP);
    return super.onTouchEvent(ev);
}

@SaravanaKumarChinnaraj重写onInterceptTouchEvent(),但存在许多问题。事实上,我没能让它很好地工作,所以,在那个时候,我找到了另一个解决方案。那个解决方案是什么@弗兰尼没有使用ViewPager。@SaravanaKumarChinnaraj eh。。。还有其他因素促使我找到了另一个解决方案:用两个手指刷卡非常“不友好”