解决可以左右滑动listview的headview(添加了gridview)滑动冲突事件会导致gridview的item点击事件失效

使用场景:swipelistview.headview.addview(gridview)

listview的headview和下面的items都在一个父布局里面,左右滑动必然会重写listview的ontouch事件即  onInterceptTouchEvent ,正常在item上 手指滑动的时候 会有左滑效果,但是如果 在headview中左右也会触发重写的touchlistener,但是headview通常是 viewpager或者 其他view不需要左右滑动操作,反而会放headview失去监听。

解决办法是:在onInterceptTouchEvent中添加如下

@Override

public booleanonInterceptTouchEvent(MotionEvent ev) {

intaction = MotionEventCompat.getActionMasked(ev);

final floatx = ev.getX();

final floaty = ev.getY();

if(headView!=null){

//判断是在headview范围内返回false

Rect rect =newRect(headView.getLeft(),headView.getTop(),headView.getRight(),headView.getBottom());

if(rect.contains((int)ev.getX(),(int)ev.getY())){

return false;

}}


//实现你的逻辑。。   ↓



}

你可能感兴趣的:(解决可以左右滑动listview的headview(添加了gridview)滑动冲突事件会导致gridview的item点击事件失效)