import android.support.v4.view.GestureDetectorCompat;
import android.support.v7.widget.RecyclerView;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
/**
* <pre>
* 名称:RecyclerItemClickListener
* 作用:
* 描述:
* 作者:pczhu
* 创建时间: 2017/6/9 下午2:26
* 版本:V1.0
* 修改历史:
* </pre>
*/
public class RecyclerItemClickListener extends RecyclerView.SimpleOnItemTouchListener {
private OnItemClickListener clickListener;
private GestureDetectorCompat gestureDetector; //v4 兼容包中
public interface OnItemClickListener {
/**
* 点击时回调
*
* @param view 点击的View
* @param position 点击的位置
*/
void onItemClick(View view, int position);
/**
* 长点击时回调
*
* @param view 点击的View
* @param position 点击的位置
*/
void onItemLongClick(View view, int position);
}
public RecyclerItemClickListener(final RecyclerView recyclerView, OnItemClickListener listener) {
this.clickListener = listener;
gestureDetector = new GestureDetectorCompat(recyclerView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
//找到点击位置对应的recyclerViewItem布局
View childView = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (childView != null && clickListener != null ) {
//回调item对象以及在recyclerview中的位置
clickListener.onItemClick(childView, recyclerView.getChildAdapterPosition(childView));
return true;
}
return super.onSingleTapUp(e);
}
@Override
public void onLongPress(MotionEvent e) {
//找到点击位置对应的recyclerViewItem布局
View childView = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (childView != null && clickListener != null) {
//回调item对象以及在recyclerview中的位置
clickListener.onItemLongClick(childView,
recyclerView.getChildAdapterPosition(childView));
}
}
});
}
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
//拦截相关事件交给gestureDetector对象处理。
if(gestureDetector.onTouchEvent(e)){
return true;
}
return false;
}
}
RecyclerView点击事件
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前面两期学习了RecyclerView的简单使用,并为其item添加了分割线。在实际运用中,无论是List还是Gr...
- Android新引入的RecyclerView用来代替ListView,但是RecyclerView处理点击和长按...
- 本文是转存自 陈育的揭开RecyclerView的神秘面纱(二):处理RecyclerView的点击事件,附传送门...