android - RecyclerView onItemTouchListener conflicts when onScroll and onLongPress case -
here problem, have recyclerview must handle both long press , scroll , move events. want intercept long press when user scrolls. , when long press occured want intercept scrolling continue actions on action_move after long pressed. have far
recyclerview.setonitemtouchlistener(new recyclerview.onitemtouchlistener() { @override public boolean onintercepttouchevent(recyclerview rv, motionevent ev) { final int action = motioneventcompat.getactionmasked(ev); if (action == motionevent.action_cancel || action == motionevent.action_up) { // release scroll. misscrolling = false; gesturedetectorcompat.ontouchevent(ev); return false; } if(action == motionevent.action_move) { // when user scrolls comes here return true; // handle scroll on ontouchevent } } public void onrequestdisallowintercepttouchevent(boolean disallow) { } @override public void ontouchevent(recyclerview rv, motionevent e) { //never comes here after return true onintercepttouchevent } });
initializing gesturedetectorcompat
gesturedetectorcompat = new gesturedetectorcompat(context,getongesturelistener()); public gesturedetector.simpleongesturelistener getongesturelistener() { return new gesturedetector.simpleongesturelistener(){ @override public void onlongpress(motionevent e) { if(!misscrolling) //do } @override public boolean onscroll(motionevent e1, motionevent e2, float distancex, float distancey) { misscrolling = true; return true; } }; }
this topics checked far didn't in case recycler view
thank helps.
Comments
Post a Comment