onCreateViewHolder
public abstract VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
大家都知道这里的 parent就是RecyclerView,但真的去从 androidx.recyclerview.widget.RecyclerView#setAdapter开始找着找着就感觉到方向是错的,因为根本没有头绪。
我们换一种思路,RecyclerView是一个灵活的View,用于提供大数据集一个受限的窗口(窗口大小限定但可以映射很大的数集 RecyclerView可以识别的ViewHolder(数据绑定到))它就是一个列表,就是一个View它要显示出来给我们看嘛 那我们就看它的绘制流程。
androidx.recyclerview.widget.RecyclerView#onLayout
androidx.recyclerview.widget.RecyclerView#dispatchLayout
androidx.recyclerview.widget.RecyclerView#dispatchLayoutStep2
androidx.recyclerview.widget.RecyclerView.LayoutManager#onLayoutChildren
androidx.recyclerview.widget.LinearLayoutManager#onLayoutChildren
androidx.recyclerview.widget.LinearLayoutManager#fill
androidx.recyclerview.widget.LinearLayoutManager#layoutChunk
androidx.recyclerview.widget.LinearLayoutManager.LayoutState#next
androidx.recyclerview.widget.RecyclerView.Recycler#getViewForPosition(int)
androidx.recyclerview.widget.RecyclerView.Recycler#getViewForPosition(int, boolean)
androidx.recyclerview.widget.RecyclerView.Recycler#tryGetViewHolderForPositionByDeadline
尝试获取该位置的ViewHolder,可以从Recycler废料、缓存、RecycledViewPool获取(尝试),或直接创建