Код работает не так как планировалось recyclerview

У меня был вопрос в котором описывается довольно сложноватая в плане реализации иерархия разметки. Если коротко, то есть фрагмент в котором лежит список и в этом списке элементами могут быть списки и linearLayout. Я хочу из фрагмента менять состояние элемента списка который является элементом самого главного списка (не уверен что понятно написал, если что в комментариях напишите что не понятно). Для этого я из фрагмента вызываю функцию адаптера который прикреплен к главному списку. Делаю это так:

listAdapterQid3.changeView()

в этом адаптере есть эта функция которая вызывает в свою очередь другую функцию которая находится в адаптере составляющего списка:

fun changeView(){
   answersAdapter.itemEnabler(0)
}

и в главном списке вот функция itemEnabler:

fun itemEnabler(type: Int) {
        when (type) {
            0 -> {
                for (i in 0 until itemCount) {
                    if (i != checkedPosition) {
                        notifyItemChanged(i, type)
                    }
                }
            }
            1 -> {
                for (i in 0 until itemCount) {
                    notifyItemChanged(i, type)
                }
            }
            2 -> {
                notifyItemChanged(checkedPosition, 2)
            }
        }


    }

и там же в адаптере есть функция изменения состояния элемента списка:

override fun onBindViewHolder(holder: AnswerHolder, position: Int, payloads: MutableList<Any>) {
        if (payloads.isNotEmpty()) {
            when (payloads[0]) {
                0 -> {
                    holder.answerBtn1.isEnabled = true
                }

                1 -> {
                    holder.answerBtn1.isEnabled = false
                }

                2 -> {
                    holder.answerBtn1.isChecked = false
                }

            }
        } else {
            super.onBindViewHolder(holder, position, payloads)
        }
    }

В чем суть проблемы: по логам было определено что все вызывается но почему-то элемент списка не становится доступным для нажатий. Для меня это не очень понятно, потому что все функции вызываются исправно и все срабатывает кроме включения элемента списка. Можно конечно сделать через интерфейсы но я не смог придумать правильную логику этих интерфейсов.


Ответы (0 шт):