我已经使用LivePagedListBuilder
在我的LiveData<PagedList<T>>
中创建了Activity
LivePagedListBuilder(DeviceDataSourceFactory(), config).build().observe(this, Observer { adapter.submitList(it) })
列表可以从ViewModel
中很好地生成,并且每个项目中都有一个按钮会将其从列表中删除
fun remove() {
// additional work here
}
我已经在Google上搜索了,发现我们可以调用adapter.notifyItemRemoved()
从列表中删除该项目,但是只有Activity
拥有adapter
的实例。因此,我需要ViewModel
告诉Activity
需要做什么的方法。我已经尝试过类似的事情
Observer {
it?.forEach { item -> item.event.observe() } // where we observes the event
adapter.submitList(it)
}
但是我发现无论有多少数据,该代码块仅被调用两次。我猜它在loadInitial
和loadAfter
中被调用,然后在引用链接之后,它不会转到Observer
中的块。