Не отображается RecyclerView во фрагменте при использовании MVVM

RecyclerView не отображается во фрагменте с mvvm, просто пустой фрагмент. Данные с апи получаю, тестил на textview.

Мой адаптер `

var items1 = arrayListOf<Recatalog>()

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
    val binding =
        RecyclerViewBinding.inflate(LayoutInflater.from(parent.context), parent, false)

    return MyViewHolder(binding, vm)
}

fun updateData(list: List<Recatalog>){
        this.items1.clear()
        this.items1.addAll(list)
        notifyDataSetChanged()


}

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

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

}

class MyViewHolder(
private val binding: RecyclerViewBinding,
private val vm: HomeViewModel
): RecyclerView.ViewHolder(binding.root){


    fun bind(recatalog: Recatalog){
        binding.title.text = recatalog.price
        binding.description.text = recatalog.title
    }
}

}`

ViewModel фрагмента `

val catalog = MutableLiveData<List<Recatalog>>()

fun getData() {
    viewModelScope.launch {
        kotlin.runCatching {
            val rieltProject = service.loadDescription2()
            if (rieltProject.isSuccessful) catalog.postValue(rieltProject.body()?.catalog)

        }

    }
}`

Сам фрагмент `var binding: FragmentHomeBinding? = null private val vm by viewModel() private val adapter by lazy { RvAdapter(vm) }

override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
): View? {
    binding = FragmentHomeBinding.inflate(layoutInflater)
    return  binding?.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    initVM()
    initRv()
    vm.getData()
}
private fun initVM(){
    vm.catalog.observe(viewLifecycleOwner, Observer {
        adapter.updateData(it)
    })
}
private fun initRv(){
    binding?.rv1?.adapter = adapter
}`

Если нужны остальные части кода - скину


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