首页 > 解决方案 > 在 Android 中使用 PagedList 时如何从 ViewModel 通知 Activity?

问题描述

我曾经LivePagedListBuilderLiveData<PagedList<T>>我的Activity

LivePagedListBuilder(DeviceDataSourceFactory(), config).build().observe(this, Observer { adapter.submitList(it) })

列表生成得很好ViewModel,每个项目中都有一个按钮,可以将自己从列表中删除

fun remove() {
    // additional work here
}

我用谷歌搜索,发现我们可以调用adapter.notifyItemRemoved()从列表中删除该项目,但只Activity保存adapter. 因此,我需要一种方法ViewModel来说明Activity需要做什么。我试过像

Observer {
    it?.forEach { item -> item.event.observe() } // where we observes the event 
    adapter.submitList(it)
}

但我发现无论有多少数据,这段代码只会被调用两次。我猜它被调用,loadInitial然后loadAfter在引用被链接后,它不会进入Observer.

标签: androidpagedlistandroid-livedata

解决方案


推荐阅读