RecyclerView 项目不显示

RecyclerView items not displaying

标题说,我正在尝试将项目加载到回收站视图中,但项目没有显示。

我正在从 api 获取项目,使用改造和 mutablelivedata,我正在获取正确的项目,适配器获取项目(有 3 个项目,适配器获取 3 个项目),但项目不显示在 UI.

这是我的代码:

Adapter.java

class EstablecimientosAdapter : ListAdapter<EstablecimientoModel, EstablecimientosViewHolder>(
    DIFF_CALLBACK
) {
    companion object {
        val DIFF_CALLBACK: DiffUtil.ItemCallback<EstablecimientoModel> =
            object : DiffUtil.ItemCallback<EstablecimientoModel>() {
                override fun areItemsTheSame(
                    oldItem: EstablecimientoModel,
                    newItem: EstablecimientoModel
                ): Boolean {
                    return oldItem.hash == newItem.hash
                }

                override fun areContentsTheSame(
                    oldItem: EstablecimientoModel,
                    newItem: EstablecimientoModel
                ): Boolean {
                    return oldItem.nombre == newItem.nombre
                }
            }
    }

    private val mEstablecimientos: MutableList<EstablecimientoModel> = mutableListOf()

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EstablecimientosViewHolder {
        val binding = RowEstablecimientoBinding.inflate(
            LayoutInflater.from(parent.context), parent, false
        )
        return EstablecimientosViewHolder(binding)
    }

    override fun onBindViewHolder(holder: EstablecimientosViewHolder, position: Int) {
        val establecimiento = getItem(position)
        holder.bindItem(establecimiento!!)
    }

    override fun getItemCount(): Int {
        return mEstablecimientos.size
    }

    fun addMoreEstablecimientos(newEstablecimientos: List<EstablecimientoModel>) {
        mEstablecimientos.addAll(newEstablecimientos)
        submitList(mEstablecimientos)
    }

    class EstablecimientosViewHolder(val binding: RowEstablecimientoBinding) :
        RecyclerView.ViewHolder(
            binding.root
        ) {
        fun bindItem(establecimiento: EstablecimientoModel) {
            binding.setVariable(BR.establecimiento, establecimiento)
        }
    }
}

recycler_view.xml

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/rvEstablecimientos"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    tools:listitem="@layout/row_establecimiento" />

Fragment.java

val cvGoBackEstablecimientos = binding!!.cvGoBackEstablecimientos
val rvEstablecimientos = binding!!.rvEstablecimientos
val adapter = EstablecimientosAdapter()
rvEstablecimientos.setHasFixedSize(true)
rvEstablecimientos.adapter = adapter
cvGoBackEstablecimientos.setOnClickListener { requireActivity().onBackPressed() }
viewModel?.getNearFreeEstablecimientos(2.0, 2.0)
    ?.observe(viewLifecycleOwner) { t -> adapter.addMoreEstablecimientos(t!!) }

我的布局似乎有些问题,我删除了一个 CoordinatorLayout,现在可以使用了。