[英]How to add an listener to when onBindViewHolder is called after calling recyclerViewAdapter.notifyItemChanged()?
I have a requirement where I want to set the state of an object after calling notifyItemChanged
so that that change is reflected when view is updated next time .我有一个要求,我想在调用notifyItemChanged
后设置 object 的 state ,以便下次更新视图时反映该更改。 However, if I do this -但是,如果我这样做 -
adapter.notifyItemChanged(itemPosition)
itemList[itemPosition].someValue = true
then onBindViewHolder
gets called with someValue = true since onBindViewHolder
is called after some time after calling notifyItemChanged.然后使用 someValue = true 调用onBindViewHolder
,因为在调用onBindViewHolder
后一段时间后调用 onBindViewHolder。 So, is there some way of knowing when onBindViewHolder has been called after calling notifyItemChanged after which I can set the desired value?那么,有没有办法知道在调用 notifyItemChanged 之后何时调用 onBindViewHolder 之后我可以设置所需的值?
I tried locationsRecyclerView.adapter?.registerAdapterDataObserver(RecyclerView.AdapterDataObserver)
but unfortunately, onItemRangeChanged
is called much before onBindViewHolder
.我尝试locationsRecyclerView.adapter?.registerAdapterDataObserver(RecyclerView.AdapterDataObserver)
但不幸的是, onItemRangeChanged
在onBindViewHolder
之前被调用了很多。
if I understand you correctly you want to change the value of an object the next time after the item in the recycle view already changed then you can add a counter to the item and when counter is uqual 2 do something like that如果我对您的理解正确,您想在回收视图中的项目已经更改后的下一次更改 object 的值,那么您可以向该项目添加一个计数器,当计数器为 uqual 2 时执行类似的操作
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
holder.bindViewHolder(position)
holder.counter++
if(holder.someValue==true&&counter==2){
//do something
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.