如何在android中的ViewPager中停止垂直滚动事件

时间:2014-09-13 17:55:56

标签: android android-activity android-viewpager

我在ViewPager中有两个视图。我希望这样做,以便当垂直滚动事件发生时,它必须到达ViewPager内部的视图,以便子项可以采取相应的操作,但是当水平滚动发生时,viewPager必须停止事件,以便它们无法到达子项。我希望我的问题清楚。

我已经扩展了ViewPager并覆盖onInterceptTouchEvent方法,我必须检查条件,但我无法弄清楚如何做到这一点。我对android很新,所以如果我问一个天真的问题,请耐心等待。

有人可以帮我覆盖onInterceptTouchEvent方法。

以下是我的尝试:

public class CustomViewPager extends ViewPager
{

    private GestureDetector mGestureDetector;

    public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    mGestureDetector = new GestureDetector(context, new YScrollDetector());
    }

        @Override
     public boolean onInterceptTouchEvent(MotionEvent ev) {

    Log.e("LOG","Intercept");
    boolean ans=super.onInterceptTouchEvent(ev);

    if(mGestureDetector.onTouchEvent(ev))
        return false;   
    return 
   }

  //Now the GestureListener

    public class YScrollDetector extends SimpleOnGestureListener {

    public boolean onDown(MotionEvent e) { 
        Log.e("LOG","In down method");
         return true; 
    }

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        Log.e("LOG","On scroll called");
            if(Math.abs(distanceY) > Math.abs(distanceX)) {
                    return true;
            }
            return false;
    }

}

但问题是onScroll方法没有从onInterceptTouchEvent获得任何调用。有人可以帮我解决。

0 个答案:

没有答案