可以使用

mAdapter.notifyItemChanged(index,1)

第一个参数 index 是刷新哪个item

第二个参数是哪个item里的哪些控件需要刷新的判断值需要我们自己处理,或者不传刷新整个item;

在 Adapter 中复写

onBindViewHolder(

holder: BaseViewHolder,

position: Int,

payloads: MutableList

)

复制代码

该方法

如下:

override fun onBindViewHolder(

holder: BaseViewHolder,

position: Int,

payloads: MutableList

) {

if (payloads.isEmpty()){

onBindViewHolder(holder,position)

}else{

super.onBindViewHolder(holder, position)

}

}

复制代码

payloads就是我们在刷新 该item是传入的第二个参数

根据 payloads 参数进行判断需要刷新那些控件;如果该参数为null哪么就需要刷新整个item

在某些情况下recycerView刷新会有闪烁的情况 我们只需要禁止recycleView的动画就好了 如下:

(swipeRecyclerView?.getItemAnimator() as DefaultItemAnimator).setSupportsChangeAnimations(false)

复制代码

还有一种是设置动画播放时间为0;

如下:

swipeRecyclerView?.getItemAnimator()?.setChangeDuration(0);// 通过设置动画执行时间为0来解决闪烁问题

复制代码

不过不推荐使用这种方法,因为在某些情况刷新的item下一个item会晃动一下。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐