【发布时间】:2021-12-22 21:12:04
【问题描述】:
我应该在我的适配器上调用任何形式的notifyDataSetChanged()?数据源是异步填充的,因为我从网络上获取数据。
适配器属于视图。但是适配器的数据源属于视图模型。视图模型不应引用视图。
我能想到的唯一更新我的适配器的方法是使用广播接收器,我不认为这也是推荐的解决方案。
MyFragment.kt
override fun onViewCreated(...) {
//...
recyclerView.adapter = myItemAdapter
}
MyViewModel.kt
private val _myItems = mutableListOf<Item>()
val myItems: List<Item> = _myItems
private fun someMethod() {
viewModelScope.launch {
_myItems.addAll(itemsRepository.getSomeItems())
}
}
提前致谢
编辑:
我不想将数据源封装在LiveData 中并观察视图中的变化,因为数据源实际上只是初始化了一次,再也不会更新。还有其他方法吗,还是我必须使用LiveData?
【问题讨论】:
标签: android mvvm android-recyclerview android-adapter notifydatasetchanged