Android SwipeRefreshLayout 、RecyclerView冲突下拉冲突的解决方案
SwipeRefreshLayout和RecyclerView一起使用的时候,有时出现RecyclerView没有滑动到顶部,手指向下滑动时,触发了SwipeRefreshLayout的刷新事件,造成了冲突。
首先来看一个http://blog.csdn.net/zhangweiwtmdbf/article/details/41206369博客分享的一个解决方法,如下:
mLayoutManager = new LinearLayoutManager(getActivity());//mPicListView是RecyclerView对象mPicListView.setLayoutManager(mLayoutManager);mPicListView.setOnScrollListener(new OnScrollListener() {@Overridepublic void onScrollStateChanged(RecyclerView recyclerView,int newState) {super.onScrollStateChanged(recyclerView, newState);//加载更多if (!isLoading&& hasMore&& mAdapter.getItemCount() == (mLayoutManager.findLastVisibleItemPosition() + 1)&& newState == RecyclerView.SCROLL_STATE_IDLE) {isLoading = true;requestServerArticleMore();}}@Overridepublic void onScrolled(RecyclerView recyclerView, int dx, int dy) {super.onScrolled(recyclerView, dx, dy);//解决RecyclerView和SwipeRefreshLayout共用存在的bugmRefreshLayout.setEnabled(mLayoutManager.findFirstCompletelyVisibleItemPosition() == 0);}});
这个我试了下,也能解决,但与单个item不会超过屏幕高度的情况下,上面的解决方法是可行的,反之就不行了。
找了好久,又找到了更好的解决办法:
http://stackoverflow.com/questions/25178329/recyclerview-and-swiperefreshlayout
recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener(){@Overridepublic void onScrolled(RecyclerView recyclerView, int dx, int dy) {int topRowVerticalPosition =(recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();swipeRefreshLayout.setEnabled(topRowVerticalPosition >= 0);}@Overridepublic void onScrollStateChanged(RecyclerView recyclerView, int newState) {super.onScrollStateChanged(recyclerView, newState);}});
圆满解决问题。
Android SwipeRefreshLayout 、RecyclerView冲突下拉冲突的解决方案相关推荐
- Android SwipeRefreshLayout GMail的下拉刷新效果
新浪微博:@_阡陌花开 Android 讨论群:92058507 今天更新了一下手机App,随手点开GMail客户端,发现它的下拉刷新效果很炫: 还打算研究研究如何实现呢,不过先去百度了一下,发现这个 ...
- android google 下拉刷新 csdn,android SwipeRefreshLayout google官方下拉刷新控件
下拉刷新功能之前一直使用的是XlistView很方便我前面的博客有介绍 SwipeRefreshLayout是google官方推出的下拉刷新控件使用方法也比较简单 今天就来使用下SwipeRefres ...
- android 下拉刷新实现方式,Android RecyclerView设置下拉刷新的实现方法
Android RecyclerView设置下拉刷新的实现方法 1 集成 SwipeRefreshLayout 1.1 xml布局文件中使用 android:id="@+id/refresh ...
- android 设置下拉刷新,Android RecyclerView设置下拉刷新的实现方法
Android RecyclerView设置下拉刷新的实现方法 1 集成 SwipeRefreshLayout 1.1 xml布局文件中使用 android:id="@+id/refresh ...
- android 官方上拉,手把手教你实现RecyclerView的下拉刷新和上拉加载更多
纵观多数App,下拉刷新和上拉加载更多是很常见的功能,但是谷歌官方只有一个SwipeRefreshLayout用来下拉刷新,上拉加载更多还要自己做. 基于RecyclerView简单封装了这两个操作, ...
- 采用SwipeFreshLayout+Recyclerview实现下拉刷新和上拉加载更多以及CoordinatorLayout的引入
之前都是采用PullToRefresh进行下拉刷新和下拉加载,现在采用谷歌自己的控件SwipeFreshLayout,配合Recyclerview来实现这一效果.使用SwipeRefreshLayou ...
- android 4.4 禁止下拉,Android开发中禁止下拉式的实现技巧
我们开发项目的时候,经常会看到禁止的情况,而Android开发中并没有直接调用的接口,下面是爱站技术频道小编就给大家介绍的Android开发中禁止下拉式的实现技巧,希望网友们喜欢! 分享给大家供大家参 ...
- android改变下拉框字体颜色,有没有简单的方法来改变Android中的Spinner下拉颜色?...
我创建我的主题以与应用程序一起使用,主题的父级是Theme.AppCompat.Light.NoActionBar 顺便说一句,我想要白色背景和黑色文字. 这是适配器代码 val adapter = ...
- android二级菜单实现,Android编程实现二级下拉菜单及快速搜索的方法
本文实例讲述了Android编程实现二级下拉菜单及快速搜索的方法.分享给大家供大家参考,具体如下: 一.我们要做什么? 上面有个搜索框,下面是一个二级下拉菜单. 输入查询内容,下面列表将显示查询结果. ...
最新文章
- 注册Github账户过程
- 字符串互换后字典序最小
- Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离
- vivo计算机隐藏游戏,vivo
- SpringMVC拦截器之介绍和搭建环境
- java文件名中不能包含的字符,使用Java 7编写包含非英语字符的文件名时,zip条目不正确...
- 【Unity】UGUI无法修改UI元素的Pivot锚点位置
- 13.字符串,结构,联合
- HDU_1874_畅通工程续_最短路问题
- 【字体分享】设计师常用的日系中文字体
- ansible模块--setup模块
- jeecg boot微服务架构图
- oracle 报错904,EXP-00008: 遇到 ORACLE 错误 904
- 超时空智慧办公白皮书(2023)
- 在aws亚马逊云EC2上创建root用户,并使用root用户登录
- OUC_软件工程_BLOG1
- 理清gcc、libc、glibc、libc++、libstdc++的关系
- QSL语句大全(3)
- php 尾递归,又见尾递归
- 纽约大学计算机研究生案例,纽约大学计算机专业硕士成功申请案例