我有一个要求,我想在调用notifyItemChanged
之后设置对象的状态,以便在视图下一次更新时反映出更改。但是,如果我这样做-
adapter.notifyItemChanged(itemPosition)
itemList[itemPosition].someValue = true
然后onBindViewHolder
会以someValue = true进行调用,因为在调用notifyItemChanged之后一段时间后会调用onBindViewHolder
。因此,是否有某种方法可以知道在调用notifyItemChanged之后何时调用了onBindViewHolder,之后便可以设置所需的值了?
我尝试过locationsRecyclerView.adapter?.registerAdapterDataObserver(RecyclerView.AdapterDataObserver)
,但不幸的是,onItemRangeChanged
在onBindViewHolder
之前被调用了很多。
如果我理解的正确,您想在回收视图中的项目已更改之后的下一次更改对象的值,则可以向该项目添加一个计数器,并且当计数器等于2时,执行类似的操作
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
holder.bindViewHolder(position)
holder.counter++
if(holder.someValue==true&&counter==2){
//do something
}
}