国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中RecyclerView嵌套滑動沖突解決的代碼片段

2019-12-12 04:22:22
字體:
來源:轉載
供稿:網友

在縱向RecyclerView嵌套橫向RecyclerView時,如果縱向RecyclerView有下拉刷新功能,那么內部的橫向RecyclerView的橫向滑動體驗會很差.(只有純橫向滑動時,才能滑動內部的橫向RecyclerView,否則滑動事件就會影響到下拉刷新),添加攔截判斷.

public class MySwipeRefreshLayout extends SwipeRefreshLayout { private boolean mIsVpDragger; private final int mTouchSlop; private float startY; private float startX; public MySwipeRefreshLayout(Context context) {  super(context);  mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } public MySwipeRefreshLayout(Context context, AttributeSet attrs) {  super(context, attrs);  mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) {  int action = ev.getAction();  switch (action) {   case MotionEvent.ACTION_DOWN:    // 記錄手指按下的位置    startY = ev.getY();    startX = ev.getX();    // 初始化標記    mIsVpDragger = false;    break;   case MotionEvent.ACTION_MOVE:    // 如果viewpager正在拖拽中,那么不攔截它的事件,直接return false;    if (mIsVpDragger) {     return false;    }    // 獲取當前手指位置    float endY = ev.getY();    float endX = ev.getX();    float distanceX = Math.abs(endX - startX);    float distanceY = Math.abs(endY - startY);    // 如果X軸位移大于Y軸位移,那么將事件交給viewPager處理。    if (distanceX > mTouchSlop && distanceX > distanceY) {     mIsVpDragger = true;     return false;    }    break;   case MotionEvent.ACTION_UP:   case MotionEvent.ACTION_CANCEL:    // 初始化標記    mIsVpDragger = false;    break;  }  // 如果是Y軸位移大于X軸,事件交給swipeRefreshLayout處理。  return super.onInterceptTouchEvent(ev); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 明光市| 迁安市| 龙岩市| 宝坻区| 合肥市| 闸北区| 响水县| 廉江市| 新竹市| 垦利县| 泸州市| 镇康县| 应用必备| 东乡县| 广昌县| 收藏| 琼海市| 华安县| 宽甸| 巴中市| 湾仔区| 淮北市| 梁平县| 东乌珠穆沁旗| 阳谷县| 灵川县| 得荣县| 井冈山市| 化州市| 临邑县| 普兰县| 正安县| 定陶县| 方城县| 云浮市| 陵水| 黔南| 喀喇沁旗| 邛崃市| 古丈县| 荥经县|