Android:SwipeRefreshLayout+RecyclerView.onScrollListener冲突解决

提供一个简单的解决方式,首先重写onScrollListener内部的onScrolled方法,即滚动完成后,我们进行判断。
判断RecyclerView可见的item位于第一个的时候,使swipeRefresh获取焦点,不走ScrollListener,当不在第一个不在屏幕内显示的时候,走ScrollListener。
下面放代码

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {public void onScrolled(RecyclerView recyclerView, int dx, int dy) {                //判断RecyclerView可见的item位于第一个的时候,使swipeRefresh获取焦点,不走ScrollListener,当不在第一个不在屏幕内显示的时候,走ScrollListener                int topRowVerticalPosition =                        (recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();                  //走swipeRefresh                swipeRefreshLayout.setEnabled(topRowVerticalPosition >= 0);                                if (topRowVerticalPosition < 0)                {                //走ScrollListener 写具体内容}    }      @Override      public void onScrollStateChanged(RecyclerView recyclerView, int newState) {          super.onScrollStateChanged(recyclerView, newState);      }    }

更多相关文章

  1. Android屏幕截图实现 (adbd部分)
  2. Android屏幕信息获取
  3. android button按键得到焦点和点击后改变背景图片
  4. Android 4.0: 旋转屏幕时禁止Activity重新加载
  5. android屏幕适配详解
  6. 必须知道的Android屏幕自适应解决方案
  7. Android中如何让手机屏幕不待机
  8. 最全面Android屏幕适配解决方案
  9. android中获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置

随机推荐

  1. 去掉 Android工程中让人很不爽的“黄色警
  2. Android(安卓)传感器的 数据流和框架
  3. Android(安卓)自己动手写ListView学习其
  4. 从Android界面开发谈起
  5. android横竖屏总结
  6. Android-Module:ImageView常用XML属性
  7. Flutter 项目打包发布
  8. android造假 editView显示时间
  9. ゞAndroid(安卓)- 疑难問題 - 技巧小结
  10. 2020-09-07