小编Imr*_*Ali的帖子

MVVM-包含布局内的 Recyclerview 从未初始化

我有一个通用列表,需要在我的应用程序中的大多数活动/片段上显示。为此,我创建了一个布局并在其中添加了回收器,如下面的代码所示。然后根据需要将该布局包含在活动/片段中。我正在使用 MVVM 和 android 绑定。我的问题是 recyclerview 的 onCreateViewHolder 甚至 getItemCount 从未被调用。我的 updateList 函数从视图模型成功调用,列表中有 2 项,但 notifydatasetchanged 没有任何效果。我做错了什么?这是我的代码。适配器类

class FaqsAdapter : RecyclerView.Adapter<FaqsAdapter.MyViewHolder>() {
    lateinit var binding: FaqItemBinding
    lateinit var listFaqs: List<ModelFaqs>

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
        val inflater = LayoutInflater.from(parent.context)
        binding = DataBindingUtil.inflate(inflater, R.layout.faq_item, parent, false)
        return MyViewHolder(binding)
    }

    override fun getItemCount(): Int {
        return if (::listFaqs.isInitialized) listFaqs.size else 0
    }

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        holder.bind(listFaqs[position])
    }

    fun updateList(faqs: List<ModelFaqs>) {
        this.listFaqs = faqs //this …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview android-databinding android-mvvm

5
推荐指数
1
解决办法
1357
查看次数