RecyclerView 的Adapter position的区别

2,691 阅读1分钟

//过时 adapterPosition

adapterPosition 和layoutPosition的区别:

layoutPosition 比 adapterPosition 有延迟.

如果界面在notifyDataSetChanged()刷新所有数据,获取的adapterPosition 有可能会是-1,而layoutPosition获取到的还是旧的值.
如果使用但如果用的是notifyItemInserted(0),获取的adapterPosition就能立刻获取到新的值.

什么时候用adapterPosition 和 layoutPosition?

在我看来如果需要获取最新最快的position就使用adapterPosition, 如果想获取当前界面显示位置的position就使用layoutPosition.

bindingAdapterPosition 和 absoluteAdapterPosition 的区别

在不低于1.2.0-alpha02开始的新版本的RecycleView 中有个叫MergeAdapter的对象,1.2.0-alpha04开始改名为ConcatAdapter. 这个对象的作用就是能把多个Adapter对象按顺序合并起来.

bindingAdapterPosition 返回的是Item所在Adapter的位置. absoluteAdapterPosition 返回的是合并后Item所在的位置.

第一次记录知识点,也不知道有没错,格式也不怎么好,欢迎大家给意见和指出错误谢谢