RecyclerView原理
使用:
给RecyclerView配置 Adapter和LayotuManager
分割线:
原理
https://blog.csdn.net/qq_33275597/article/details/93849695
职责:
LayoutManager:管理布局排列
ItemAnimator:负责动画
ItemDecoration:分割线
Recycler:处理View的缓存
Adapter:为每一个视图创建视图
ViewHolder:承载Item视图的子布局
//参考 https://www.jianshu.com/p/29352def27e6
notifyDataSetChanged()闪烁问题:
原因:pool默认容量为5,notifyDataSetChanged()后,全部被放入pool,导致部分item被GC,需要createViewHolder。并且如果不是scrap的会执行addView(),重新测量布局。导致闪烁。
解决方法:
notifyDataSetChanged():设置setHasStableIds(true),并且复写getItemId(),getItemId()设置为唯一值。