在kotlin中为recyclerview实现MVVM设计模式
我是Kotlin的初学者,试图在android开发中实现MVVM设计模式。我必须在片段中实现一个Recyclerview。 我们如何从viewmodel类中将具有值的适配器设置为recyclerview,因为在viewmodel中观察到api调用 我的fragment类如下所示在kotlin中为recyclerview实现MVVM设计模式,mvvm,kotlin,data-binding,android-recyclerview,android-livedata,Mvvm,Kotlin,Data Binding,Android Recyclerview,Android Livedata,我是Kotlin的初学者,试图在android开发中实现MVVM设计模式。我必须在片段中实现一个Recyclerview。 我们如何从viewmodel类中将具有值的适配器设置为recyclerview,因为在viewmodel中观察到api调用 我的fragment类如下所示 class NotesFragment : Fragment() { lateinit var binding:FragmentNotesBinding lateinit var viewModel:NoteListV
class NotesFragment : Fragment() {
lateinit var binding:FragmentNotesBinding
lateinit var viewModel:NoteListViewModel
companion object {
fun newInstance(param1: String): NotesFragment {
val fragment = NotesFragment()
val args = Bundle()
fragment.arguments = args
return fragment
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
binding = DataBindingUtil.inflate(inflater,R.layout.fragment_notes,container,false)
viewModel = NoteListViewModel(binding)
return binding.root
}
我们将绑定对象传递给viewmodel类,然后从viewmodel类中再次更新viewmodel对象,这是一种好的做法吗
private fun onSuccess(success: NoteResponse?) {
dataVisibility.value=View.VISIBLE
success.let {
noteAdapter= noteAdapter(documentResponse?.result,mContext)
binding.viewModel=this
}
}
MVVM的核心是关注点分离。ViewModel不应包含对视图的任何引用(活动/片段)。同样,数据/存储库层不应包含ViewModel引用 因此,为了实现数据流,您可以使用来自android体系结构组件的反应式观测(Rx)/LiveData来传回数据 1) 在Viewmodel中创建可变LiveData 2) 使用api响应模型设置MutableLiveData 3) 观察片段中响应数据的MutableLiveData 4) 使用这些数据在片段内设置适配器 请检查以便更好地理解