使用场景: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;
}}
//实现你的逻辑。。 ↓
}
网友评论