在Android中使用PagedList时如何从ViewModel通知Activity?

时间:2018-07-14 18:40:00

标签: android pagedlist android-livedata

我已经使用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)
}

但是我发现无论有多少数据,该代码块仅被调用两次。我猜它在loadInitialloadAfter中被调用,然后在引用链接之后,它不会转到Observer中的块。

0 个答案:

没有答案