RecyclerView自定义Layoutmanger-了解

onLayoutChildre 会调用 detachAndScrapAttachedViews 分离 ViewHolder 存储到相应的缓存(Recycler)中去

这里拿出了 LinearLayoutManger 布局的流程(简单的过程):
fill ->
这里简单的讲解下 onLayoutChildren 的 fill 逻辑

public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
	detachAndScrapAttachedViews(recycler);
	// 绘制流程(从上往下,从下往上)
    if (mAnchorInfo.mLayoutFromEnd) {
    	// fill towards start
    	updateLayoutStateToFillStart(mAnchorInfo);
    	fill(recycler, mLayoutState, state, false);
    	// fill towards end
    	updateLayoutStateToFillEnd(mAnchorInfo);
    	fill(recycler, mLayoutState, state, false);
    } else {
    	// fill towards end
    	updateLayoutStateToFillEnd(mAnchorInfo);
    	fill(recycler, mLayoutState, state, false);
    	// fill towards start
    	updateLayoutStateToFillStart(mAnchorInfo);
        fill(recycler, mLayoutState, state, false);
    }
}

RecyclerView自定义Layoutmanger-了解_第1张图片

相关类 含义
AnchorInfo 绘制子View的时候,记录其位置,偏移量,方向等信息
LayoutChunkResult 加载子View结果情况的记录,比如已经填充的子View的数量
LayoutState 当前加载的状态记录,比如当前绘制的偏移量,屏幕还剩余多少空间等

推荐资料

https://github.com/wuyr/PathLayoutManager

你可能感兴趣的:(Android,TV)