本来有一个需求用recyclerView
实现分页加载和元素动态宽高功能,其中分页加载通过上拉加载实现。于是看了一些文章,总结为以下的参考。
onMeasure
里根据元素的宽来动态改变GridLayoutManager
的列数。
按照文章实现AutofitRecyclerView.class
后,在xxlayout.xml你要用到的位置放置<com.xx.xx.AutofitRecyclerView>
标签即可(这个class就可以当做普通的View标签使用了)。LinearLayoutManager
。上拉、下拉加载的实现思路是监听RecyclerView的滚动。(可能会有帮助的两个函数RecyclerView#addOnScrollListener
和LinearLayoutManager#findLastVisibleItemPosition
)swipeRereshLayout
上拉加载:https://www.cnblogs.com/manmanlu/p/5736856.html 跟随教程:https://www.jianshu.com/p/a5b4d6aecf41
之前曾想过,项目要求在
footer
处使用@id/swipe_load_more_footer
,如果在多处SwipeToLoadLayout都用到了footer标签,会不会因为id重名产生问题。后来查看源码发现SwipeToLoadLayout只会在自己的标签内查找swipe_load_more_footer
这个id,因此不会因为重名产生问题。也就是说,SwipeToLoadLayout
可以在多处使用。
则需要去到元素的布局文件里,把根标签的layout_width
设置为match_parent
GridLayoutManager
指定宽度。