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

问题描述 投票:0回答:1

我有一个要求,我想在调用notifyItemChanged之后设置对象的状态,以便在视图下一次更新时反映出更改。但是,如果我这样做-

adapter.notifyItemChanged(itemPosition)
itemList[itemPosition].someValue = true

然后onBindViewHolder会以someValue = true进行调用,因为在调用notifyItemChanged之后一段时间后会调用onBindViewHolder。因此,是否有某种方法可以知道在调用notifyItemChanged之后何时调用了onBindViewHolder,之后便可以设置所需的值了?

我尝试过locationsRecyclerView.adapter?.registerAdapterDataObserver(RecyclerView.AdapterDataObserver),但不幸的是,onItemRangeChangedonBindViewHolder之前被调用了很多。

android android-recyclerview recycler-adapter
1个回答
0
投票

如果我理解的正确,您想在回收视图中的项目已更改之后的下一次更改对象的值,则可以向该项目添加一个计数器,并且当计数器等于2时,执行类似的操作

    override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
        holder.bindViewHolder(position)
        holder.counter++

        if(holder.someValue==true&&counter==2){
            //do something

        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.