前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >recyclerView实现分页加载和元素动态宽高

recyclerView实现分页加载和元素动态宽高

作者头像
平凡的学生族
发布2019-05-25 09:33:41
1.5K0
发布2019-05-25 09:33:41
举报
文章被收录于专栏:后端技术后端技术

本来有一个需求用recyclerView实现分页加载元素动态宽高功能,其中分页加载通过上拉加载实现。于是看了一些文章,总结为以下的参考。

参考1. 自己实现

  • 动态列数: https://www.jianshu.com/p/178ca4c439b2 总结来讲,就是在onMeasure里根据元素的宽来动态改变GridLayoutManager的列数。 按照文章实现AutofitRecyclerView.class后,在xxlayout.xml你要用到的位置放置<com.xx.xx.AutofitRecyclerView>标签即可(这个class就可以当做普通的View标签使用了)。
  • 下拉刷新、上拉加载:https://blog.csdn.net/u012402124/article/details/78210639?reload 这个解决方案只支持LinearLayoutManager。上拉、下拉加载的实现思路是监听RecyclerView的滚动。(可能会有帮助的两个函数RecyclerView#addOnScrollListenerLinearLayoutManager#findLastVisibleItemPosition
  • 另一个实现swipeRereshLayout上拉加载:https://www.cnblogs.com/manmanlu/p/5736856.html

参考2. 使用开源项目:SwipeToLoadLayout

跟随教程:https://www.jianshu.com/p/a5b4d6aecf41

之前曾想过,项目要求在footer处使用@id/swipe_load_more_footer,如果在多处SwipeToLoadLayout都用到了footer标签,会不会因为id重名产生问题。后来查看源码发现SwipeToLoadLayout只会在自己的标签内查找swipe_load_more_footer这个id,因此不会因为重名产生问题。也就是说,SwipeToLoadLayout可以在多处使用

GridLayoutManager,item不居中问题

则需要去到元素的布局文件里,把根标签的layout_width设置为match_parent

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考1. 自己实现
  • 参考2. 使用开源项目:SwipeToLoadLayout
  • GridLayoutManager,item不居中问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档