Recyclerview自定义点击事件
2017-12-12 09:37
375 查看
它有一个最简单的方法
RecyclerView.OnItemTouchListener新建一个类
上面的类可以直接拿来用,然后就可以在主页面用adapter调用addOnItemTouchListener
非常的简单实用。
RecyclerView.OnItemTouchListener新建一个类
public class RecyclerViewClickListener2 implements RecyclerView.OnItemTouchListener { private GestureDetector mGestureDetector; private OnItemClickListener mListener; //内部接口,定义点击方法以及长按方法 public interface OnItemClickListener { void onItemClick(View view, int position); void onItemLongClick(View view, int position); } public RecyclerViewClickListener2(Context context, final RecyclerView recyclerView,OnItemClickListener listener){ mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener(){ //这里选择SimpleOnGestureListener实现类,可以根据需要选择重写的方法 //单击事件 @Override public boolean onSingleTapUp(MotionEvent e) { View childView = recyclerView.findChildViewUnder(e.getX(),e.getY()); if(childView != null && mListener != null){ mListener.onItemClick(childView,recyclerView.getChildLayoutPosition(childView)); return true; } return false; } //长按事件 @Override public void onLongPress(MotionEvent e) { View childView = recyclerView.findChildViewUnder(e.getX(),e.getY()); if(childView != null && mListener != null){ mListener.onItemLongClick(childView,recyclerView.getChildLayoutPosition(childView)); } } }); } @Override public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { //把事件交给GestureDetector处理 if(mGestureDetector.onTouchEvent(e)){ return true; }else return false; } @Override public void onTouchEvent(RecyclerView rv, MotionEvent e) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } }
上面的类可以直接拿来用,然后就可以在主页面用adapter调用addOnItemTouchListener
mRecyclerView.addOnItemTouchListener(new RecyclerViewClickListener2(this, mRecyclerView, new RecyclerViewClickListener2.OnItemClickListener() { @Override public void onItemClick(View view, int position) { Toast.makeText(MainActivity.this,"Click "+mData.get(position),Toast.LENGTH_SHORT).show(); } @Override public void onItemLongClick(View view, int position) { Toast.makeText(MainActivity.this,"Long Click "+mData.get(position),Toast.LENGTH_SHORT).show(); } }));
非常的简单实用。
相关文章推荐
- RecyclerView自定义点击事件和长按事件
- 自定义RecyclerView之点击事件
- Android实现RecyclerView自定义列表、点击事件以及下拉刷新
- Recyclerview的自定义点击事件
- Android实现RecyclerView自定义列表、点击事件以及下拉刷新
- RecyclerView的使用 以及RecyclerView的自定义点击事件
- 解决 RecyclerView条目点击事件,分享自定义adapter
- 自定义RecyclerView的item的点击事件
- Android RecyclerView自定义点击事件和长按事件
- Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新
- 安卓中RecyclerView的简单使用和自定义RecyclerView的接口点击监听事件
- recyclerView自定义点击事件
- 如何自定义RecyclerView的点击事件和绘制分割线-高级UI-2
- android_自定义recyclerView的点击事件
- RecyclerView自定义点击事件
- Android-UI布局---RecyclerView学习(一)在适配器中自定义长按和点击事件
- recyclerView自定义点击事件
- 如何自定义RecyclerView的点击事件和绘制分割线-高级UI
- RecyclerView基础-数据适配、自定义分割线、上拉加载、下拉加载、item点击事件
- UITableView自定义cell上的按钮点击事件