Как добавить прослушиватель, когда onBindViewHolder вызывается после вызова recyclerViewAdapter.notifyItemChanged ()? - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть требование, когда я хочу установить состояние объекта после вызова notifyItemChanged, чтобы это изменение отражалось, когда представление обновляется в следующий раз . Однако, если я сделаю это -

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

, то onBindViewHolder будет вызываться с someValue = true, поскольку onBindViewHolder вызывается через некоторое время после вызова notifyItemChanged. Итак, есть ли какой-то способ узнать, когда onBindViewHolder был вызван после вызова notifyItemChanged, после чего я могу установить желаемое значение?

Я пытался locationsRecyclerView.adapter?.registerAdapterDataObserver(RecyclerView.AdapterDataObserver), но, к сожалению, onItemRangeChanged вызывается намного раньше onBindViewHolder.

1 Ответ

1 голос
/ 30 апреля 2020

если я правильно вас понимаю, вы хотите изменить значение объекта в следующий раз после того, как элемент в представлении рециркуляции уже изменился, тогда вы можете добавить счетчик к элементу, а когда счетчик равен 2, сделать что-то подобное

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

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

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...