http://blog.csdn.net/liyx2018/article/details/51383072

来源:互联网 发布:安卓lua 虚拟按键源码 编辑:程序博客网 时间:2024/06/11 11:57
/** * Created by Luki on 2017/5/2. */public abstract class OnRecyclerItemClickListener implements RecyclerView.OnItemTouchListener{    private final RecyclerView recyclerView;    private final GestureDetectorCompat mGestureDetector;    public OnRecyclerItemClickListener(RecyclerView recyclerView){        this.recyclerView=recyclerView;        mGestureDetector = new GestureDetectorCompat(recyclerView.getContext(),new ItemTouchHelperGestureListener());    }    @Override    public void onTouchEvent(RecyclerView rv, MotionEvent e) {        mGestureDetector.onTouchEvent(e);    }    @Override    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {    }    @Override    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {        mGestureDetector.onTouchEvent(e);        return false;    }    public abstract void onItemClick(RecyclerView.ViewHolder viewHolder);    public abstract void onItemLOngClick(RecyclerView.ViewHolder viewHolder);    private class ItemTouchHelperGestureListener extends GestureDetector.SimpleOnGestureListener {        public  boolean onSingleTapUp(MotionEvent event){            View child = recyclerView.findChildViewUnder(event.getX(), event.getY());            if (child != null){                RecyclerView.ViewHolder viewHolder = recyclerView.getChildViewHolder(child);                onItemClick(viewHolder);            }            return true;        }        public  void onLongPress(MotionEvent event){            View child = recyclerView.findChildViewUnder(event.getX(), event.getY());            if (child != null){                RecyclerView.ViewHolder viewHolder = recyclerView.getChildViewHolder(child);                onItemLOngClick(viewHolder);            }        }    }}
0 0