首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RecyclerView的各种版本兼容问题处理集锦

RecyclerView的各种版本兼容问题处理集锦

作者头像
aqi00
发布2019-01-18 14:54:14
发布2019-01-18 14:54:14
2.9K10
代码可运行
举报
文章被收录于专栏:老欧说安卓老欧说安卓
运行总次数:0
代码可运行

RecyclerView固然功能强大,然而使用过程中时常发生各种兼容性问题,,兹记录处理办法如下,方便大家查阅:

1、若在ADT中调用RecyclerView,可能app运行时会报错“Caused by: java.lang.NoClassDefFoundError: android.support.v7.recyclerview.R$styleable”,这时就不能使用sdk\extras\android\support\v7\recyclerview下面的jar包,而要到extras/android/m2repository/com/android/support/recyclerview-v7目录下,在版本号21.0.0的子目录中找到recyclerview-v7-21.0.0.aar,该aar文件其实是个压缩文件,解压该文件可得到classes.jar,将该jar包更名并加入到你的工程,上面的运行错误应该就没有了。另外一个办法是把sdk\extras\android\support\v7\recyclerview整个目录做为库工程,然后目标工程再引用该库工程。

2、在23.2.0之前的版本上,RecyclerView会默认充满整个屏幕下方,即使在布局文件中将其高度设置为wrap_content,循环视图依旧霸气地填充到屏幕底部,导致在它后面的其它视图都显示不了了。该问题已明确是RecyclerView兼容包的bug,Android官方在23.2.0及其之后的版本已经修复了,所以如果代码中有用到RecyclerView,需确保build.gradle中的recyclerview-v7版本不低于23.2.0。 3、当循环视图的列表项已经占满整个屏幕,此时再往顶部添加一条新记录,感觉屏幕没有发生变化,也没看到插入动画。实际上视图顶部确实有添加新记录,把列表项往下拉就能看到,只是循环视图不会自动进行下拉。要解决这个问题,得在notifyItemInserted方法调用之后,再调用循环视图对象的scrollToPosition(0)方法,表示滚动到第一条记录。 4、Android5.0之后如果使用ScrollView嵌套RecyclerView,那么RecyclerView将只显示第一行,后面部分要滑动才会出现,但此时滑动的只有RecyclerView部分而不是整个ScrollView。解决办法是在RecyclerView外面嵌套一层RelativeLayout,即:

代码语言:javascript
代码运行次数:0
运行
复制
       <RelativeLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:descendantFocusability="blocksDescendants">
           
           <!--中间补充RecyclerView-->
           
       </RelativeLayout>

点此查看Android开发笔记的完整目录

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年01月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档