Вы можете создать функцию в своем классе адаптера, которая будет принимать функцию более высокого порядка в качестве параметра, а затем выставить объект ViewHolder
в этой функции для использования вне Класс адаптера .
Посмотрите, как это можно сделать:
Допустим, у вас Класс адаптера , как показано ниже
class Adapter {
...
// Here we create object of our Higher order function
var holderCallback: ((RecyclerView.ViewHolder?) -> Unit)? = null
//Then We provide callback like below in onBindViewHolder method
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
... Some binding stuff
holderCallback?.let {
it(holder)
}
... even some more stuff
}
}
И теперь мы можем получить доступ извне (В вашем случае, из класса Fragment)
class Fragment {
// Here we have adapter object
...
//So, we get our callback like below from any method in here
...Inside some method where we receive callback
adapter.holderCallback { viewHolder: RecyclerView.ViewHolder? -> //Here you've got ViewHolder object
// Now do some amazing stuff here !!
}
}