能够兼容ViewPager的ScrollView

/**

 * 能够兼容ViewPager的ScrollView

 * @Description: 解决了ViewPager在ScrollView中的滑动反弹问题

 */

public class ScrollViewExtend extends ScrollView {

    // 滑动距离及坐标

    private float xDistance, yDistance, xLast, yLast;



    public ScrollViewExtend(Context context, AttributeSet attrs) {

        super(context, attrs);

    }



    @Override

    public boolean onInterceptTouchEvent(MotionEvent ev) {

        switch (ev.getAction()) {

            case MotionEvent.ACTION_DOWN:

                xDistance = yDistance = 0f;

                xLast = ev.getX();

                yLast = ev.getY();

                break;

            case MotionEvent.ACTION_MOVE:

                final float curX = ev.getX();

                final float curY = ev.getY();

                

                xDistance += Math.abs(curX - xLast);

                yDistance += Math.abs(curY - yLast);

                xLast = curX;

                yLast = curY;

                

                if(xDistance > yDistance){

                    return false;

                }  

        }



        return super.onInterceptTouchEvent(ev);

    }

} 


你可能感兴趣的:(scrollview)