RecycleView 局部刷新

最近由于功能需要,我需要在界面上通过RecycleView来展示Gif图片的列表,展示其实很简单,只要通过RecycleView来设置布局管理器,然后设置适配器就ok了.但是麻烦的是在于他是需要在用户点击的时候,在item被选中的时候有一个选中框,当然这也不难做,但是你要在选中的时候去显示选中框,就需要调用adapter的notifyDataChanged(),但是这个刷新是当前显示的所有item都刷新,当然你完全可在在onBindViewHolder()方法中去实现选中框的显示(无非就是判断点击的位置是否相同之类的)。可是这样就有个大问题,你全部刷新的话,那么整个布局的gif都会刷新并且都从开始动态展示。这样很难看,如果你的gif图开头都是白色的你就会看到一大片白色海洋闪过(别问我怎么知道的)。
后来,我选择使用RecycleView的局部刷新的方法,notifyItemChanged(position),但是没有实现成功,后来去查看源码,发现需要去重写一个onBindViewHolder(RecyclerView.ViewHolder holder, int position, List payloads)方法。
在需要调用局部刷新的地方调用adapter.notifyItemChanged(position,payloads);(这个payloads随便传)
源码中,只要 判断这个不为空,就表示他会只刷新相应的position位置,为空就会默认刷新所有的item.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值