Recyclerview-自定义LayoutManager

来源:互联网 发布:安全防护软件 编辑:程序博客网 时间:2024/05/18 02:45

一、继承类:RecyclerView.LayoutManager()
二、必须实现的方法:generateDefaultLayoutParams

创建一个普通的layoutparams即可
RecyclerView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)

三、重写:onLayoutChildren方法

该方法时是针对每个item的重写

四、onLayoutChildren中相应的重要方法
4.1、detachAndScrapAttachedViews:主要用于销毁view并将view缓存到ScrapCache中

这是由于onLayoutChildren方法在初始化的过程中会调用两次,因此需要回收view,用于重复使用

4.2、getViewForPosition:获取指定位置的view

该方法可以获取任意位置的view

4.3、addView:将View添加至RecyclerView中

该方法是将获取到的view添加到RecyclerView,此时view不可见

4.4、layoutDecoratedWithMargins:将view放置到指定的位置

该方法使用之前通常会测量view的宽高
a、getDecoratedMeasuredWidth
b、getDecoratedMeasuredHeight

注意

通常情况而言都是这四个步骤,顺序可以有一定的改变,但是最好是不改变顺序。

阅读全文
0 0