麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

解決DragViewHelper和RecyclerView滑動沖突

2019-11-09 17:24:54
字體:
來源:轉載
供稿:網友

解決DragViewHelper和RecyclerView滑動沖突

當沒有recyclerview的時候 點擊拖動的view 會直接走onTouchEvent回調,也就是走DragViewHelper的PRocessTouchEvent 如果有recyclerview的時候 點擊會走onInterceptTouchEvent ,也就是走DragViewHelper的shouldInterceptTouchEvent, 進入源碼之后

public boolean shouldInterceptTouchEvent(MotionEvent ev) { final int action = MotionEventCompat.getActionMasked(ev); final int actionIndex = MotionEventCompat.getActionIndex(ev); if (action == MotionEvent.ACTION_DOWN) { // Reset things for a new event stream, just in case we didn't get // the whole previous stream. cancel(); } if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain(); } mVelocityTracker.addMovement(ev); switch (action) { case MotionEvent.ACTION_DOWN: { final float x = ev.getX(); final float y = ev.getY(); final int pointerId = ev.getPointerId(0); saveInitialMotion(x, y, pointerId); final View toCapture = findTopChildUnder((int) x, (int) y); // Catch a settling view if possible. if (toCapture == mCapturedView && mDragState == STATE_SETTLING) { tryCaptureViewForDrag(toCapture, pointerId); }}

可以看到點擊的時候是捕獲不到我們要拖動的控件的

那么我們只需要在onInterceptTouchEvent回調中通過判斷點中的view是不是自己要拖動的view 來調用shouldInterceptTouchEvent還是processTouchEvent

代碼如下

@Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean isCanDragge = false; switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: { final float x = ev.getX(); final float y = ev.getY(); final View toCapture = findTopChildUnder((int) x, (int) y); isCanDragge = toCapture != null && (toCapture == mLeftDragView || toCapture == mRightDragView); break; } } if (isCanDragge) { mDragger.processTouchEvent(ev); return super.onInterceptTouchEvent(ev); } else { return mDragger.shouldInterceptTouchEvent(ev); } } public View findTopChildUnder(int x, int y) { if (x >= mLeftDragView.getLeft() && x < mLeftDragView.getRight() && y >= mLeftDragView.getTop() && y < mLeftDragView.getBottom()) { return mLeftDragView; } if (x >= mRightDragView.getLeft() && x < mRightDragView.getRight() && y >= mRightDragView.getTop() && y < mRightDragView.getBottom()) { return mRightDragView; } return null; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久99精品视频 | 青青草成人影视 | 免费在线观看国产精品 | 91性高湖久久久久久久久网站 | 国产黄色一区二区 | 一级黄色欧美 | 91麻豆精品国产91久久久无需广告 | 日韩黄色影视 | 久久草在线视频国产 | 国产精品免费在线 | 欧洲伊人网 | 茄子福利视频 | 4p一女两男做爰在线观看 | 2021狠狠操| 精品亚洲夜色av98在线观看 | 色的综合| 97久久日一线二线三线 | 成人三级视频在线观看 | 欧美性受xxxxxx黑人xyx性爽 | 人成免费网站 | 国产免费v片 | 久久精品亚洲精品国产欧美kt∨ | 私库av在线免费观看 | 久久精品欧美一区二区 | 日朝毛片 | 久久精品女人天堂av | 毛片视频网址 | 久久久久久麻豆 | 亚洲一级片在线观看 | 久久免费视屏 | 91九色网址 | 日本黄色大片免费 | 中国成人在线视频 | 天天看天天摸天天操 | 免费看黄色一级片 | 久久久久久久一区二区三区 | 亚州综合 | 日韩中文字幕一区二区三区 | 少妇一级淫片免费放4p | 91av国产在线| 欧美精品成人一区二区三区四区 |