简体   繁体   English

调用recyclerViewAdapter.notifyItemChanged()后调用onBindViewHolder时如何添加监听?

[英]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)但不幸的是, onItemRangeChangedonBindViewHolder之前被调用了很多。

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.

相关问题 为Imageview请求RecyclerViewAdapter.notifyItemChanged的示例 - Requesting an Example for RecyclerViewAdapter.notifyItemChanged for Imageview 在带有效负载的notifyItemChanged()之后调用onBindViewHolder()而没有有效负载 - onBindViewHolder() called without payload after notifyItemChanged() with payload 在调用notifyItemChanged之后,适配器没有得到通知,并且onBindViewHolder没有被调用 - After the call to notifyItemChanged, the adapter not get notified and the onBindViewHolder do not called Android Studio Kotlin,notifyItemChanged 未调用 OnBindViewHolder - Android Studio Kotlin, notifyItemChanged not calling OnBindViewHolder 调用 diffResult.dispatchUpdatesTo(this) 后未调用 onBindViewHolder - onBindViewHolder not called after calling diffResult.dispatchUpdatesTo(this) 使用notifyItemChanged()时onBindViewHolder(VH,position)不正确地调用旧的和新的ViewHolder副本 - onBindViewHolder(VH, position) improperly calling the old and new ViewHolder copies when using notifyItemChanged() 调用onBindViewHolder时它是如何工作的? - When onBindViewHolder is called and how it works? 调用notifyitemchanged后的动画问题 - Animation issue after calling notifyitemchanged RecyclerViewAdapter 的 onBindViewHolder() 出错 - Error in RecyclerViewAdapter's onBindViewHolder() notifyItemChanged()是否强制调用onBindViewHolder()? - Does notifyItemChanged() force a call to onBindViewHolder()?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM