一般在一个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);
}
}