RecyclerView onItemClick、onItemLongClick、drag、swipe、divider、reuse disorder RecyclerView 梳理:点击&长按事件、分割线、拖曳排序、滑动删除、优雅解决 EditText 和 CheckBox 复用错乱问题、定向刷新、DiffUtil、局部刷新
本项目展示内容:
这次主要是把 RecyclerView 比较常用的基本的点,在这里集中整理一下。从这篇文章主要梳理以下几点:
详解介绍请看本项目对应的讲解文章:
RecyclerView 梳理:点击&长按事件、分割线、拖曳排序、滑动删除
当 RcyclerView 中存在 CheckBox 或 EditText 时,因为复用机制的存在,会在滚动时造成数据混乱。 虽然网上流传的有多种方法来解决,但都比较繁琐或存在一定缺陷。 这里给大家提供一种比较优雅而合理的方式来解决复用错乱的问题:
方法详情和讲解请看源码
notifyItemChanged(int position, @Nullable Object payload)
定向刷新仔细观察效果图,会发现:非定向刷新时条目会有闪动;定向刷新不会有闪动
具体查看源码说明:Activity AdapterDiffCallback
具体查看源码说明:paging3 相关代码
使用方式:
recyclerView.adapter = ConcatAdapter(mHeaderAdapter, mAdapter, mFooterAdapter)
ViewHolder.getAdapterPosition
来获得 Adapter 中某个 ViewHolder 的位置。现在,因为我们合并了多个 Adapter,作为代替,您需要调用 ViewHolder.getBindingAdapterPosition ()
。