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

本来有一个需求用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不居中问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容