ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> Android开发 >> android开发游记:RecyclerView无法添加onItemClickListener最佳的高效解决方案

android开发游记:RecyclerView无法添加onItemClickListener最佳的高效解决方案(2/3)

来源:网络整理     时间:2016-05-28     关键词:

本篇文章主要介绍了"android开发游记:RecyclerView无法添加onItemClickListener最佳的高效解决方案",主要涉及到方面的内容,对于Android开发感兴趣的同学可以参考一下: 【转自:http://blog.csdn.net/liaoinstan/article/details/51200600】 自从RecyclerView发布以...

@OverridepublicbooleanonInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
    }

    @OverridepublicvoidonTouchEvent(RecyclerView rv, MotionEvent e) {
    }

    @OverridepublicvoidonRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
    }

其中第三个方法是处理触摸事件冲突的,跟我们没关系不用管它,前两个方法是不是很熟悉呢,这不就是View的事件分发机制里面的事件拦截和事件处理的两个方法吗,参数里为我们提供了触摸事件的数据MotionEvent,我们要做的就是去解析坐标点和触摸规律来识别触摸手势,然后获取触摸的是哪一个item,再执行我们的回调,听起来很复杂,但是我前面已经说过了,sdk已经为我们实现了手势的识别:

GestureDetectorCompat 就是处理手势的类:手势探测器,它比GestureDetector能更好兼容低版本的api,但使用方法是一致的,我们实例化一个手势探测器:

mGestureDetector = new GestureDetectorCompat(context,new GestureListener(){...});

我们实例化手势探测器的时候需要提供一个手势监听器:OnGestureListener,探测器识别出手势后就会回调手势监听器中对应的方法,我们就可以在回调方法中做我们想做的事情了。

sdk为我们提供了两个手势监听器:OnGestureListener,OnDoubleTapListener

OnGestureListener的回调接口如下:

//用户按下屏幕就会触发publicbooleanonDown(MotionEvent e);
    //如果是按下的时间超过瞬间,而且在按下的时候没有松开或者是拖动的,那么onShowPress就会执行publicvoidonShowPress(MotionEvent e);
    //一次单独的轻击抬起操作,也就是轻击一下屏幕,就是普通点击事件publicbooleanonSingleTapUp(MotionEvent e);
    //在屏幕上拖动事件publicbooleanonScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY);
    //长按触摸屏,超过一定时长,就会触发这个事件publicvoidonLongPress(MotionEvent e);
    //滑屏,用户按下触摸屏、快速移动后松开publicbooleanonFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY);

OnDoubleTapListener的回调接口如下:

相关图片

相关文章