Не отображается 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
}`
Если нужны остальные части кода - скину