Listview ViewPager 解决滑动冲突

一般在一个APP首页很容易碰到。一个Listview中有一个Viewpager作为广告栏进行一页一页的进行翻转,但是listview是纵向滑动的,viewpager是横向滑动的。所以会导致有滑动冲突,那该怎么解决呢,一般都是自定义一个ViewPager,利用View传递事件进行处理,好了,废话不多说,直接上代码

public class CustomerViewPager extends ViewPager {

    /**
     * 记录最后一次手指触摸屏幕的X轴坐标点
     */
    private float lastDownX;
    /**
     * 横向最小滑动距离
     */
    private static final float X_DISTANCE = 15.0f;

    public CustomerViewPager(Context context) {
        super(context);
    }

    public CustomerViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        final int ACTION = ev.getAction();
        if (ACTION == MotionEvent.ACTION_DOWN) {
            lastDownX = ev.getX();
        } else if (ACTION == MotionEvent.ACTION_MOVE) {
            float distanceX = Math.abs(lastDownX - ev.getX());
            if (distanceX > X_DISTANCE) {
                return true;
            }
        } else {
        }
        return super.onInterceptTouchEvent(ev);
    }

}


你可能感兴趣的:(Android,项目总结)