У меня есть адаптер с кодом ниже.Проблема в том, что onCleared () - метод ViewModel, кажется, никогда не вызывается для ViewModels для элементов списка.Существует ли специальный метод / флаг, который необходимо установить для очистки этих ViewModels?
class BaseRecyclerViewViewModelAdapter(
private val lifecycleOwner: LifecycleOwner
) : RecyclerView.Adapter<BaseRecyclerViewViewModelViewHolder>() {
var items: List<BaseRecyclerViewItemViewModel> = emptyList()
set(value) {
field = value
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseRecyclerViewViewModelViewHolder {
val binding: ViewDataBinding =
DataBindingUtil.inflate(LayoutInflater.from(parent.context), viewType, parent, false)
return BaseRecyclerViewViewModelViewHolder(binding)
}
override fun getItemCount() = items.size
override fun onBindViewHolder(holder: BaseRecyclerViewViewModelViewHolder, position: Int) {
with(holder.binding) {
setVariable(BR.viewModel, items[position])
setLifecycleOwner(lifecycleOwner)
executePendingBindings()
}
}
override fun getItemViewType(position: Int) = items[position].layoutId
}