关于recycleview 添加删除数据

先是集合删除具体的哪一条数据
list.removeAt(position)
调用adapter的删除动画,这句代码实际就是起一个动画效果,同理添加方法
notifyItemRemoved(position)
将集合数据重新和界面呈现的重新绑定,不加这句就会造成实际的集合数据和界面的数据不一致导致报错
notifyItemChanged(position)

这里还有个问题就是

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
    holder.bindData(context, list[position])
    holder.view.setOnClickListener {
        list.removeAt(holder.adapterPosition)
        notifyItemRemoved(holder.adapterPosition)
        notifyItemChanged(holder.adapterPosition)
    }
}

删除的位置标志位不能用position,就像我开始写的一样,

 因为onBindViewHolder() 方法中的位置参数 position 不是实时更新的,所以在我们删除元素后,item 的 position 没有改变。

所以要用holder.adapterPosition来获取位置

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值