- Notifications
You must be signed in to change notification settings - Fork51
RecyclerView onItemClick、onItemLongClick、drag、swipe、divider、reuse disorder RecyclerView 梳理:点击&长按事件、分割线、拖曳排序、滑动删除、优雅解决 EditText 和 CheckBox 复用错乱问题、定向刷新、DiffUtil、局部刷新
License
OCNYang/RecyclerViewEvent
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
本项目展示内容:
- 点击事件、长按事件
- 分割线
- 拖曳排序、侧滑删除
- 拖曳排序 & 首个固定
- 复用错乱(复选框、编辑框)
- 定向刷新
- DiffUtil 的使用
- Paging 3 的使用
- DiffUtil & 定向刷新 结合使用
- 条目长按的上下文菜单按钮
- ConcatAdapter (旧名:MergeAdapter)
- swipe and drag.拖曳 + 滑动删除
- drag. 拖曳 + 首个 item 固定
这次主要是把 RecyclerView 比较常用的基本的点,在这里集中整理一下。从这篇文章主要梳理以下几点:
- 优雅的实现:item 点击事件 & item 长点击事件
- RecyclerView 添加 divider 的标准姿势
- RecyclerView 实现 item 的拖曳排序和滑动删除
- 拖曳排序时,限制首个 item 固定的实现
详解介绍请看本项目对应的讲解文章:
RecyclerView 梳理:点击&长按事件、分割线、拖曳排序、滑动删除
当 RcyclerView 中存在 CheckBox 或 EditText 时,因为复用机制的存在,会在滚动时造成数据混乱。虽然网上流传的有多种方法来解决,但都比较繁琐或存在一定缺陷。这里给大家提供一种比较优雅而合理的方式来解决复用错乱的问题:
方法详情和讲解请看源码
仔细观察效果图,会发现:非定向刷新时条目会有闪动;定向刷新不会有闪动
具体查看源码说明:ActivityAdapterDiffCallback
具体查看源码说明:paging3 相关代码
使用方式:
recyclerView.adapter =ConcatAdapter(mHeaderAdapter,mAdapter,mFooterAdapter)
- 可以使不同的 Adapter (不同数据、不同布局) 合并成一个 Adapter 设置给 RecyclerView 显示;
- 功能有点类似多 ItemViewType 的 Adapter,不同的是每个 Adapter 是从上到下按顺序显示的,不能混排
- 您可能使用过
ViewHolder.getAdapterPosition来获得 Adapter 中某个 ViewHolder 的位置。现在,因为我们合并了多个 Adapter,作为代替,您需要调用ViewHolder.getBindingAdapterPosition ()。
About
RecyclerView onItemClick、onItemLongClick、drag、swipe、divider、reuse disorder RecyclerView 梳理:点击&长按事件、分割线、拖曳排序、滑动删除、优雅解决 EditText 和 CheckBox 复用错乱问题、定向刷新、DiffUtil、局部刷新
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.






