RecyclerView内置Bug
来源:互联网 发布:奥比岛刷奥币软件 编辑:程序博客网 时间:2024/06/03 04:31
今天在测试自己写的App时突然崩溃,查了下问题,原来是RecyclerView的一个内在Bug导致的。
问题出现在用SwipeRefreshLayout进行刷新时把数据clear,再立刻不断往下拉RecyclerView,于是就出现了Crash。找了很久解决方法,很多人说做个判断,在clear的时候禁止下拉,但是这样会导致用户体验很差,解决方案:
在SwipeRefreshLayout中:
if (recyclerView.getScrollState() == RecyclerView.SCROLL_STATE_IDLE ||
!recyclerView.isComputingLayout()) {
activityAdapter.notifyDataSetChanged();
}
在执行notifyDataSetChanged之前,现判断当前时候还在滑动,如果没有滑动,执行notifyDataSetChanged方法。
解释下上面代码:getScrollState()方法获取到scrollState,scrollState有三种状态,分别是开始滚动(SCROLL_STATE_FLING),正在滚动(SCROLL_STATE_TOUCH_SCROLL), 已经停止(SCROLL_STATE_IDLE),也就是说当recyclerview已经停止滚动或者recyclerview还未布局完成,就调用其适配器的notifyDataSetChanged()方法,
notifyDataSetChanged()方法是data数据发生变化时,要及时用来通知主线程刷新UI,但不是每次改变都刷新。
- RecyclerView内置Bug
- RecyclerView导入bug解决
- RecyclerView的BUG探讨
- RecyclerView异常BUG
- 谷歌RecyclerView内部Bug
- RecyclerView的bug
- RecyclerView焦点跳转BUG优化
- RecyclerView焦点跳转BUG优化
- RecyclerView下拉刷新bug修复
- RecyclerView遇到的两个bug
- HTML内置Marquee的Bug?
- RecyclerView嵌套RecyclerView 条目自动上滚的bug
- 解决Android SwipeRefreshLayout & RecyclerView使用的Bug
- RecyclerView的bug——Inconsistency detected
- Android - 实现下拉刷新 和 RecyclerView Bug
- 解决Android SwipeRefreshLayout & RecyclerView使用的Bug
- RecyclerView利用LayoutManager查找控件的BUG
- android recyclerview 删除和添加 bug
- leetcode Symmetric Tree
- 2008年北大信科研究生复试 机考真题(一)--大数据十进制转换
- Android6.0和7.0新特性分析
- 入坑 可持久化线段树——主席树
- 关于流程管理软件activiti eclipse插件安装
- RecyclerView内置Bug
- Java中的comparable和comparator详解
- 01背包——JAVA实现
- 第四周--3
- Android常见的异常及处理
- POJ1787,Charlie‘s changes。不太复杂的背包问题
- c++primer 第八章
- 数值分析牛顿切线法python3实现并绘图
- 14. Longest Common Prefix