文档章节

RecyclerView crashes

obaniu
 obaniu
发布于 2017/01/24 11:07
字数 279
阅读 768
收藏 0

    搜索recyclerview崩溃,国内所有技术文章逃不了要链接到stackoverflow的RecyclerView crashes when “scrapped or attached views may not be recycled”,它的解决方案是设置recyclerview的属性android:animateLayoutChanges为false(如果您需要代码设置那就是调用recyclerview.setLayoutTransition(null);)。然并卵在我集成recyclerview到react-native中这么设置依然崩溃。
    我在开发中遇到两个最多次的崩溃问题是

  1. IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true
  2. IllegalStateException: Cannot call this method unless RecyclerView is computing a layout or scrolling
    快速滚动崩溃在stackoverflow和google官方论坛都有人反馈RecyclerView crashes on scrolling Issue 226353: RecyclerView crash when scrolling fast

    实际并没有很好的解决方案,只能减少崩溃的情况并不意味彻底解决RecyclerView的崩溃。可见RecyclerView坑还不少,还需要一段时间来完善。以下是我摸索出的一些方法:

  1. 设置android:animateLayoutChanges=false(或者recyclerview.setLayoutTransition(null););
  2. setNestedScrollingEnabled(false)可以缓解快速滚动崩溃;
  3. setFitsSystemWindows(true);
  4. 切记不要重写ItemAnimator一定要使用DefaultItemAnimator;
  5. 重写LinearLayoutManager的supportsPredictiveItemAnimations 返回false;
  6. DefaultItemAnimator setSupportsChangeAnimations(false);

希望对您有帮助!

 

© 著作权归作者所有

obaniu
粉丝 37
博文 83
码字总数 39241
作品 0
广州
高级程序员
私信 提问
Android Studio 2.2 Preview 2 发布

Android Studio 2.2 Preview 2 发布了。 主要改进记录如下: ConstraintLayout: version 1.0.0-alpha2 Fixed guidelines crash on device Fixed typo in attribute name (leftToLeft) Change......

oschina
2016/05/28
3.9K
8
RecyclerView的两种加载更多的写法比较

关于RecyclerView的加载更多(重写RecyclerView.OnScrollListener),网上普遍有两种写法,来分析下两种写法的优劣: 第一种,代码如下,这种方法的原理是当RecyclerView持有的Item数量减去可见的I...

fantasiter
2016/06/30
45
0
赵彦军/RecyclerView

RecyclerView RecyclerView不再负责显示工作,用法比ListView更解耦。和ListView不一样的是,RecyclerView不再负责Item的摆放等显示方面的功能。所有和布局、绘制等方面的工作Google都其拆分成...

赵彦军
2016/12/02
0
0
android之recyclerview的基本使用

Google在推出Android5.0的时候推出了Material Design ,而RecyclerView是Material Design 重要组件之一。当然还有CardView/Palette。 RecyclerView是用来替换传统的ListView和GridView,瀑布流...

墨宇hz
2016/03/21
0
0
Android Material风格的应用(二)--RecyclerView

添加RecyclerView Android Material风格的应用(一)--AppBar TabLayout Android Material风格的应用(二)--RecyclerView Android Material风格的应用(三)--DrawerLayout Android Material风格的......

coderminer
2016/11/14
87
0

没有更多内容

加载失败,请刷新页面

加载更多

一、docker 入坑(win10和Ubuntu 安装)

前言 终究还是绕不过去了,要学的知识真的是太多了,好在我们还有时间,docker 之前只闻其声,不曾真正的接触过,现在docker 越来越火,很多公司也都开始使用了。所以对于我们程序员而言,又...

quellanan2
1分钟前
2
0
AutoCompleteTextView

小技巧按菜单键 当菜单打开之前会调用onMenuOpened(int featereId,Menu menu),可以重写这个方法,弹出对话框或者Popmenu 再布局中添加控件AutoCompleteTextView. <AutoCompleteTextVie...

逆天游云
4分钟前
2
0
谷歌软件商店:推出5美元会员 可用数百个软件

腾讯科技讯,谷歌和苹果是全球两大智能手机操作系统的运营者,两家公司旗下分别拥有占据行业垄断地位的谷歌软件商店和苹果软件商店。据外媒最新消息,手机软件商店的商业模式正在发生一些变化...

linuxCool
26分钟前
1
0
RocketMQ 多副本前置篇:初探raft协议

Raft协议是分布式领域解决一致性的又一著名协议,主要包含Leader选举、日志复制两个部分。 温馨提示: 本文根据raft官方给出的raft动画进行学习,其动画展示地址:http://thesecretlivesofda...

中间件兴趣圈
26分钟前
1
0
elasticsearch 6.8.0 添加认证

1. 修改elasticsearch-6.8.0/config/elasticsearch.yml 最后添加一行:xpack.security.enabled: true 2. 初始化用户和密码 ./bin/elasticsearch-setup-passwords interactive 我这里初始化为......

coord
28分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部