RecyclerView.Adapter注意点
2015-12-12 16:32
281 查看
最近要显示不同item类型RecyclerView,并给每个选中的item标注选中的状态,于是重写RecyclerView.Adapter来实现;
这过程中,遇到一些问题,在这里整理需要注意的点:
1、通过重写 GetItemViewType方法类设置item显示不同类型的HoldView;在 OnCreateViewHolder方法中,根据不同的类型,显示不同item显示的Holdview信息;
2、在重写 OnCreateViewHolder方法时,附加事件的定义;如果在重写 OnBindViewHolder方法中定义会出现异常情况,而且会影响每次刷新的效率;
3、更新被选中Item的状态的时,如果每次只标记当前选中的Item的状态,可以用变量记录下当前的nowSelectIndex,然后,通过列表托管的 layoutManager来判断上一个选中项的是否在当前显示的Item范围内,如果在,则用 NotifyItemChanged(nowSelectIndex)或其他Notify方法刷新列表,并更新nowSelectIndex的值,这种方法实现更新选item状态的代码是放在 OnViewAttachedToWindow方法的实现过程中。因为,Notify类似的方法用来更新显示的列表item的状态,而未显示的item状态通过OnViewAttachedToWindow来实时更新。
以上能实现需要的效果,希望各位原友分享和指点 <.>
这过程中,遇到一些问题,在这里整理需要注意的点:
1、通过重写 GetItemViewType方法类设置item显示不同类型的HoldView;在 OnCreateViewHolder方法中,根据不同的类型,显示不同item显示的Holdview信息;
2、在重写 OnCreateViewHolder方法时,附加事件的定义;如果在重写 OnBindViewHolder方法中定义会出现异常情况,而且会影响每次刷新的效率;
3、更新被选中Item的状态的时,如果每次只标记当前选中的Item的状态,可以用变量记录下当前的nowSelectIndex,然后,通过列表托管的 layoutManager来判断上一个选中项的是否在当前显示的Item范围内,如果在,则用 NotifyItemChanged(nowSelectIndex)或其他Notify方法刷新列表,并更新nowSelectIndex的值,这种方法实现更新选item状态的代码是放在 OnViewAttachedToWindow方法的实现过程中。因为,Notify类似的方法用来更新显示的列表item的状态,而未显示的item状态通过OnViewAttachedToWindow来实时更新。
以上能实现需要的效果,希望各位原友分享和指点 <.>
相关文章推荐
- backgroundWorker
- Python学习笔记-4(模块:collections、itertools、xml)
- hdu 3652 数位DP 进阶
- 被需要,才是最极致的幸福
- MIFARE系列7《安全》
- Delphi Edit输入+号(加号),不允许显示输入符号,清空Edit,显示事件
- 给结构赋值和显示
- Windows 10 优化方案
- 详解光纤光缆、网线、电缆的区别
- matlab figure edit 加标注
- Life
- 236.Lowest Common Ancestor of a Binary Tree
- Daily Scrum 12.12
- fork函数和vfork函数的区别--19
- 使用memcache实现锁操作
- 进程kill的方法
- MFC背景颜色
- x264预设类参数详解
- android内存管理(二)
- 深入理解Java:注解(Annotation)--注解处理器